嗨,我正在用 Java 开发一个编辑器,我希望它能够在出错后重新启动整个应用程序。
我使用 设置异常处理程序Thread.setDefaultUncaughtExceptionHandler
,并在那里显示一个消息框,这很容易。我需要以某种方式关闭应用程序,然后使用相同的文件再次启动它。
有任何想法吗?
嗨,我正在用 Java 开发一个编辑器,我希望它能够在出错后重新启动整个应用程序。
我使用 设置异常处理程序Thread.setDefaultUncaughtExceptionHandler
,并在那里显示一个消息框,这很容易。我需要以某种方式关闭应用程序,然后使用相同的文件再次启动它。
有任何想法吗?
你可以这样做
Runtime.getRuntime().exec("java -jar "location.of.your.jar");
要获取 jar 位置:
public static File getJarFile(Class main) { try { File f = new File(main.getProtectionDomain().getCodeSource().getLocation().toURI()); return f; } catch (URISyntaxException ex) { return null; } }
这是一个可能具有相同场景的旧线程:how to restart java application, remember its command line arguments
通过调用Runtime.exec("my_startup_command");
不要等待终止来启动应用程序,不要读取 Processoutput。
当我们想在清晨醒来时,我们会做什么?我们告诉家里有人叫醒我们,或者我们设置了闹钟。所以同样可以应用于这种情况。从您的主应用程序中创建一个完全独立的应用程序,它将作为您的主应用程序的“调用者”。在 Restart 命令下,只需使用所有命令行参数启动调用程序应用程序并退出您的主应用程序。然后在一段时间后(无论您设置什么时间),您的调用程序应用程序将启动您的主应用程序。