メインメソッド(プログラムの開始)がProcessオブジェクトとJFrameを作成するMainWindowクラスのオブジェクトを開始するJavaアプリケーションを作成しました。Javaアプリケーションでプロセスを強制終了する問題
public static void main(String[] args) throws Exception {
File file = new File("./access/run.bat");
ProcessBuilder process_builder = new ProcessBuilder("cmd", "/c", file.getName());
process_builder.directory(file.getParentFile());
Process process = process_builder.start();
MainWindow window = new MainWindow(process);
}
Iは(殺す)ウィンドウが閉じられたときにprocess.destroy()でインスタンス化されたプロセスを終了したいと思います。ここではメインウィンドウクラスのいくつかのコードは次のとおりです。
public MainWindow(final Process process) throws TransformerException, ParserConfigurationException, Exception{
JFrame mainWindowFrame = new JFrame();
*****some code here*****
mainWindowFrame.addWindowListener(new WindowListener() {
public void windowClosed(WindowEvent arg0) {
process.destroy();
System.exit(0);
}
*****some code here*****
}
}
ウィンドウを閉じると、残念ながら、プロセスが殺されていません...誰も私にこれについての説明と可能な解決策を与えることができますか?ありがとう!!!
おかげで、それはまだ動作しません、プロセスはまだ私が言及した何 – Anto
を実行していること(破壊するように、メソッドが呼び出されるようになります)、それはなかったとして、最初の場所で実行されます前に走っていた。あなたのrun.batファイルが他のプロセスを開始しているようで、プロセス上のdestroy()によって破壊されることはありません。以下の投稿を確認してください。[here](http://stackoverflow.com/questions/6356340/killing-a-process-using-java) –