如何重新启动Java AWT应用程序?我有一个按钮,我将事件处理程序附加到该按钮上。我应该使用什么代码来重新启动应用程序?
我想做与Application.Restart()
在C#应用程序中做的事情相同的事情。
发布于 2010-11-12 06:23:07
严格地说,Java程序不能重新启动自身,因为要这样做,它必须终止正在运行的JVM,然后重新启动它,但是一旦JVM不再运行(终止),则不能执行任何操作。
您可以使用自定义类加载器来加载、打包和重新启动AWT组件,但这可能会导致很多关于GUI事件循环的麻烦。
根据应用程序的启动方式,您可以在包含do/while循环的包装器脚本中启动JVM,该循环在JVM以特定代码退出时继续,然后AWT应用程序必须调用System.exit(RESTART_CODE)
。例如,在脚本伪代码中:
DO
# Launch the awt program
EXIT_CODE = # Get the exit code of the last process
WHILE (EXIT_CODE == RESTART_CODE)
AWT应用程序应该在“正常”终止时使用不同于RESTART_CODE的命令退出JVM,该命令不需要重新启动。
发布于 2010-11-12 06:29:02
Eclipse通常在安装插件后重新启动。他们使用windows的包装器eclipse.exe (启动器应用程序)来做到这一点。这个应用程序执行核心eclipse runner jar,如果eclipse java应用程序以重新启动代码终止,eclipse.exe将重新启动工作台。您可以构建类似的本机代码、shell脚本或其他java代码包装器来实现重启。
发布于 2010-11-12 06:19:19
如果你真的需要重启你的应用,你可以写一个单独的应用来启动它……
此页面针对不同的场景提供了许多不同的示例:
https://stackoverflow.com/questions/4159802
复制相似问题