我的要求是重新启动应用程序。
我有一个用户界面按钮。当我点击它时,它应该停止当前正在运行的应用程序并应该启动同一个应用程序。
使用的语言是java。
我的要求是重新启动应用程序。
我有一个用户界面按钮。当我点击它时,它应该停止当前正在运行的应用程序并应该启动同一个应用程序。
使用的语言是java。
创建一个将java -jar yourApp.jar
使用 java 启动新的 application.invoke 并停止当前应用程序的进程。
除了 Jigar 的解决方案之外,您可能希望将其他参数委托给重新启动的应用程序,例如 VM 选项、程序参数或应用程序的基本目录。您可以将此存根扩展到您的需要:
private static void restartApplication() throws IOException {
List<String> arguments = ManagementFactory.getRuntimeMXBean().getInputArguments();
List<String> fullRestart = new ArrayList<String>();
fullRestart.add(System.getProperty("java.home")+"/bin/java");
fullRestart.addAll(arguments);
fullRestart.add("-cp");
fullRestart.add(System.getProperty("java.class.path"));
// Assuming that 'Application' contains the main method:
fullRestart.add(Application.class.getName());
ProcessBuilder pb = new ProcessBuilder(fullRestart);
pb.directory(new File(".").getParentFile());
System.out.println("Starting app - arguments: " + fullRestart);
pb.start();
System.exit(0);
}
创建批处理文件 myBat.bat
PING 1.1.1.1 -n 1 -w 30000 >NUL // wait for your application to stop 3000 milsec
java -jar yourApp.jar
在 system.exit(0) 之前
称呼
Runtime.getRuntime().exec(myBat.bat); // give proper path