Java.exe JVM能以某种方式重启吗?如果你有一个在DOS shell(不作为服务)中运行的Java程序,那么关闭shell,关闭shell并使用不同的Windows进程ID重新启动自己的最简洁,最有效的方法是什么,并重新打开一个带有重载类路径的不同shell?
我希望这不可能,但我想我应该向其他人询问并向他们学习。
注意:如果有人知道Eclipse IDE如何能够如此干净地重新启动,那就是我想要使用的方法。
答案 0 :(得分:6)
Java Service Wrapper可以在这里提供帮助。您可以在其下运行Java进程,但不一定是服务。您可以定义重新启动特性,如果它退出,则重新启动Java程序(System.exit()
或调用WrapperManager.restart()
)。
答案 1 :(得分:1)
最干净,最简单的方法是从DOS批处理文件(或CMD脚本,如果您愿意)运行程序。在DOS批处理文件中构建一个循环。你把一个:label
放在开头附近,然后在你的Java进程下面放一个GOTO label
。如果需要,你可以使用 Ctrl - C 打破循环。
答案 2 :(得分:0)
创建一个单独的可执行文件,它将进程ID和命令作为命令行参数,等待指定的进程关闭然后运行指定的命令。启动该程序,然后退出当前实例。
您可以将该程序嵌入主程序中并将其复制到临时目录中以执行它,或者将其与您的程序并排包含。