有没有办法重启JVM?就像在实际上不退出,但关闭并重新加载所有类,并从顶部运行main?
你最好的选择可能是在循环中运行java解释器,然后退出.例如:
#!/bin/sh while true do java MainClass done
如果您想要完全重启或关闭,可以测试退出状态:
#!/bin/sh STATUS=0 while [ $STATUS -eq 0 ] do java MainClass STATUS=$? done
在java程序中,您可以使用System.exit(0)表示您要"重新启动",并使用System.exit(1)表示您要停止并保持停止状态.
IBM的JVM有一个名为"resettable"的功能,可以让您有效地完成您的要求.
http://publib.boulder.ibm.com/infocenter/cicsts/v3r1/index.jsp?topic=/com.ibm.cics.ts31.doc/dfhpj/topics/dfhpje9.htm
除了IBM JVM之外,我认为不可能.