当然,可以重新启动Java应用程序。
以下方法显示了一种重新启动Java应用程序的方法:
public void restartApplication(){ final String javaBin = System.getProperty("java.home") + File.separator + "bin" + File.separator + "java"; final File currentJar = new File(MyClassInTheJar.class.getProtectionDomain().getCodeSource().getLocation().toURI()); if(!currentJar.getName().endsWith(".jar")) return; final ArrayList<String> command = new ArrayList<String>(); command.add(javaBin); command.add("-jar"); command.add(currentJar.getPath()); final ProcessBuilder builder = new ProcessBuilder(command); builder.start(); System.exit(0);}基本上,它执行以下操作:
- 查找Java可执行文件(我在这里使用了Java二进制文件,但这取决于您的要求)
- 查找应用程序(在我的情况下是一个jar,使用MyClassInTheJar类来查找jar本身)
- 生成命令以重新启动jar(在这种情况下,请使用Java二进制文件)
- 执行它!(从而终止当前应用程序并再次启动它)



