Java 当用户关闭Windows计算器时,如何打印消息?
我有一个java程序。程序使用Runtime.exec打开Windows计算器。到目前为止还不错,但我需要的是,当程序被用户关闭时,会出现一条消息说“程序已成功关闭”Java 当用户关闭Windows计算器时,如何打印消息?,java,runtime.exec,Java,Runtime.exec,我有一个java程序。程序使用Runtime.exec打开Windows计算器。到目前为止还不错,但我需要的是,当程序被用户关闭时,会出现一条消息说“程序已成功关闭” 我用destroy()完成了,但这不是我需要的。您可以尝试在进程上调用waitFor(),当该方法返回时,请检查isAlive(),以确保。要检查进程是否正常终止,您可以检查waitFor()的返回值,或者调用exitValue()您必须通过exec()调用进程返回。这将等待线程结束,并返回您可以测试的退出值(0是一个成功的退出值
我用destroy()完成了,但这不是我需要的。您可以尝试在进程上调用
waitFor()
,当该方法返回时,请检查isAlive()
,以确保。要检查进程是否正常终止,您可以检查waitFor()
的返回值,或者调用exitValue()
您必须通过exec()
调用进程
返回。这将等待线程结束,并返回您可以测试的退出值(0
是一个成功的退出值,其他所有内容都是一个不成功的退出值)
到目前为止你都试了些什么?不需要将编解码器调用发布到
isAlive()
和exitValue()
,因为waitFor()
将等待进程终止,并返回退出值。完美。谢谢。
try {
final Process calc = Runtime.getRuntime().exec("calc");
if (calc.waitFor() == 0) {
JOptionPane.showMessageDialog(null, "Program has been closed successfully.", "Program closed", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(null, "Program has been closed unsuccessfully.", "Program closed", JOptionPane.WARNING_MESSAGE);
}
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "IO error: " + e.getMessage(), "Exception encountered", JOptionPane.ERROR_MESSAGE);
} catch (InterruptedException e) {
JOptionPane.showMessageDialog(null, "Thread interrupted: " + e.getMessage(), "Exception encountered", JOptionPane.ERROR_MESSAGE);
}