Java 当用户关闭Windows计算器时,如何打印消息?

Java 当用户关闭Windows计算器时,如何打印消息?,java,runtime.exec,Java,Runtime.exec,我有一个java程序。程序使用Runtime.exec打开Windows计算器。到目前为止还不错,但我需要的是,当程序被用户关闭时,会出现一条消息说“程序已成功关闭” 我用destroy()完成了,但这不是我需要的。您可以尝试在进程上调用waitFor(),当该方法返回时,请检查isAlive(),以确保。要检查进程是否正常终止,您可以检查waitFor()的返回值,或者调用exitValue()您必须通过exec()调用进程返回。这将等待线程结束,并返回您可以测试的退出值(0是一个成功的退出值

我有一个java程序。程序使用Runtime.exec打开Windows计算器。到目前为止还不错,但我需要的是,当程序被用户关闭时,会出现一条消息说“程序已成功关闭”


我用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);
}