没有JDK,addShutdownHook无法在Mac上运行

时间:2013-03-13 18:08:13

标签: macos java shutdown-hook

好的,所以我在关闭程序后使用关闭钩子来运行外部更新程序。该挂钩在具有JDK的PC和Mac上按预期工作,但它不适用于仅具有Java运行时而不是JDK的Mac。知道为什么会这样吗?代码如下:

private void runExternalUpdater() {
    Runtime.getRuntime().addShutdownHook(new Thread() {
        public void run() {
            String n = program + "-new" + sysExt + "," + program + sysExt + ",Type1";
            try {
                Runtime.getRuntime().exec(new String[]{"java","-jar","UpdateProgram.jar",n});
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });
    try {
        Thread.sleep(250);
    } catch (InterruptedException e1) {
        e1.printStackTrace();
    }
    System.exit(0);
}

编辑:正如评论中所述,这现在可以在安装JDK之后在有问题的机器上运行,所以现在我的问题是;为什么JDK需要运行这部分代码?我认为JDK只是在使用IDE时实际开发程序所必需的,并且JRE应该是运行已完成程序所需的唯一内容。

0 个答案:

没有答案