任何“重启"的方式JVM?

2022-01-16 00:00:00 jvm java

有没有办法重启JVM?如实际上并没有退出,而是关闭并重新加载所有类,然后从顶部运行 main?

Is there any way to reboot the JVM? As in don't actually exit, but close and reload all classes, and run main from the top?

推荐答案

最好的办法可能是在循环中运行 java 解释器,然后退出.例如:

Your best bet is probably to run the java interpreter within a loop, and just exit. For example:

#!/bin/sh
while true
do
    java MainClass
done

如果您希望能够完全重启或关闭,您可以测试退出状态:

If you want the ability to reboot or shutdown entirely, you could test the exit status:

#!/bin/sh
STATUS=0
while [ $STATUS -eq 0 ]
do
    java MainClass
    STATUS=$?
done

在 java 程序中,您可以使用 System.exit(0) 表示您要重新启动",并使用 System.exit(1) 表示您要停止并保持停止状态.

Within the java program, you can use System.exit(0) to indicate that you want to "reboot," and System.exit(1) to indicate that you want to stop and stay stopped.

相关文章