自分自身を削除するにはJARファイルが必要です。JARファイル自体はどのように削除できますか?
問題は、実行中にWindowsがJARファイルをロックし、自身を直接削除できないことです。
私はバッチスクリプトは、JARのプロセスを強制終了してから、ファイルを削除することができソリューションに見てきましたが、それはBatch
ファイル経由で実行可能ではありませんので、
System.exit(0)
が望まれていません。taskkill /F /IM "java.exe"
は、ALLJava
のプロセスを殺すので望ましくありません。jps
because it is only available in theJDK
を使用することはできません。ユーザーはJRE
を実行して失敗する可能性があります。
は、私はその後、私はJava
コードを使用して、現在のJAR
のPID
を見つけることができます解決策を探してBatch
コマンドを書き出すと、例えばプロセスを殺すPID
を挿入するにこだわっています次のように:
printWriter.println("taskkill /PID " + currentJARPID);
あなたは、これは何のためにあるのか迷っている場合は、this答えを確認することができます。ここで
javaファイルがbatファイルの出力を読み込み、killコマンドを待つことはできますか?または、Javaファイルとやりとりすることなく、batファイルからファイルを削除する必要がありますか? – phflack
@phflack: 'JAR'がもはやロックされずに削除できるように、バッチファイルから' Java'プロセスを削除する必要があります。 'Java'コードの中では、' Windows'でのファイルロックのため、同時に実行したり削除したりすることができないので、削除はできません。 – BullyWiiPlaza
私は、Javaプログラムが.batの出力を読み取ることができるかどうかを言い換えると理解します。 – phflack