1 java swing process terminate
我有一个创建子进程的 Java Swing 应用程序。主 Swing 应用程序有一个停止按钮,点击该按钮后应立即终止子进程。“process.destroy()”不起作用。
Process myProcess = new ProcessBuilder("java", "-classpath", System.getProperty("java.class.path"), "MyClass.java");
try {
myProcess.waitFor();
}
catch (Exception e) {
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
...
myStopButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
myProcess.destroyForcibly();
// myProcess is a really long and complex process. So I could not destroy that using process.destroyForcibly().
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
这实际上取决于你的java版本。
\n\nJava 8 之前
\n\npublic abstract void destroy()\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n杀死子进程。此 Process\n 对象表示的子进程被强制终止。
\n
爪哇8
\n\npublic abstract void destroy()\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n杀死子进程。此进程对象表示的子进程是否被强制终止取决于实现。
\n
public Process destroyForcibly()\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n杀死子进程。此 Process\n 对象表示的子进程被强制终止。此方法的默认实现调用 destroy(),因此可能不会强制终止进程。强烈鼓励此类的具体实现\n 使用兼容的实现重写此方法。\n 在 ProcessBuilder.start() 和 Runtime.exec(java.lang.String) 返回的 Process 对象上调用此方法将\n强行终止进程。
\n\n注意:子进程可能不会立即终止。即 isAlive() 可能会在调用 destroyForcously() 后短暂返回 true。如果需要,可以将此方法链接到 waitFor()。
\n\n返回: 表示要强制销毁的子进程的 Process 对象。
\n
爪哇9
\n\npublic abstract void destroy\xe2\x80\x8b()\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n杀死进程。此 Process 对象表示的进程是否正常终止取决于实现。强制进程销毁定义为进程的立即终止,而正常终止则允许进程彻底关闭。如果进程不存在,则不采取任何操作。当进程终止时,onExit() 中的 CompletableFuture 就会完成。
\n
public Process destroyForcibly\xe2\x80\x8b()\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n强行杀死进程。此 Process\n 对象表示的进程被强制终止。强制进程销毁被定义为进程的立即终止,而正常终止则允许进程彻底关闭。如果进程不存在,则不采取任何操作。当进程终止时,onExit() 中的 CompletableFuture 已完成\n。
\n\n对 ProcessBuilder.start() 和 Runtime.exec(java.lang.String) 返回的 Process 对象调用此方法会强制终止进程。
\n
API注意事项:
\n\n\n\n\n该过程可能不会立即终止。即,在调用 destroyForcously() 后,isAlive() 可能会在短时间内返回 true。如果需要,此方法可以链接到 waitFor()。实现要求:\n 此方法的默认实现调用 destroy(),因此可能\n 不会强制终止进程。实现注意事项:强烈建议此类的具体实现使用兼容的实现覆盖此方法。
\n
返回:
\n\n\n\n表示被强制销毁的进程的 Process 对象
\n
| 归档时间: |
|
| 查看次数: |
4211 次 |
| 最近记录: |