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

时间:2014-11-17 08:34:42

标签: java runtime.exec

我有一个java程序。该程序使用Runtime.exec打开Windows计算器。到目前为止一切顺利,但我需要在用户关闭程序时出现一条消息,说“程序已成功关闭”。

我用destroy()制作它,但这不是我需要的。

2 个答案:

答案 0 :(得分:3)

您必须在Process返回exec()之前致电waitFor()。这将等待线程结束,并将返回您可以测试的退出值(0是一个成功的退出值,其他一切都是一个不成功的退出值。)

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

答案 1 :(得分:0)

您可以尝试在流程上调用waitFor(),并且该方法返回检查isAlive()以确定。要检查流程是否正常终止,您可以检查waitFor()的返回值或致电exitValue()