Process
クラスで次のようなプログラムを実行するとします。
Process p1 = Runtime.getRuntime().exec("setup.exe");
try {
p1.waitFor();
} catch (InterruptedException e) {
//Whatever
}
そして、GUI
クラスには次のようなキャンセル ボタンもあります。
private void cancelButtonActionPerformed(ActionEvent e) {
//Need to interrupt the thread from here!
System.exit(0);
}
プログラムをそのまま終了すると、作成した setup.exe プロセスがProcess.java
実行中に残りますが、これは問題です。通常は を呼び出しますp1.destroy()
が、2 つのクラス間の接続に問題があります。
どんな提案でも大歓迎です!
編集:
private void beginThread() {
SwingWorker<String, Void> myWorker = new SwingWorker<String, Void>() {
@Override
protected String doInBackground() throws Exception {
//Do some stuff
}
return null;
}
};
myWorker.execute();
}