问题现象
在程序启动时,无法启动服务,查看Windows事件日志,发现如下错误信息:
Could not initialize the java virtual machine.
问题原因
该问题的是由于JVM -Xmx设置的太大引起的。
解决方案
那么-Xmx设置多少服务才可以启动呢?
-Xmx的最大值根据运行环境的不同而有所差异,具体可以使用java -Xmx2048m -version来测试,如果使用该命令后,正常返回版本信息,则说明可以支持2048MB最大堆内存的申请,但是上线是多少呢?那么使用上述命令不断的试探,当不能正常返回版本信息时,那么就是说设置值超过了JDK支持的最大堆内存支持。
32位的JDK和64位的JDK支持的最大堆内存(-Xmx)是不同的,理论上,64位的JDK对于设置-Xmx是没有限制的,但32位的JDK有所限制,一般上线是1.5G左右,实际环境需要使用上述命令来试探。