初始堆大小无效。无法创建 Java 虚拟机

2022-09-02 21:20:22

我遇到了下一个问题:我正在尝试通过启动手动启动Tomcat.bat,但它似乎没有显示任何结果,然后我尝试运行关闭.bat控制台显示接下来:

 D:\apache-tomcat-7.0.35\bin>startup.bat
Using CATALINA_BASE:   "D:\apache-tomcat-7.0.35"
Using CATALINA_HOME:   "D:\apache-tomcat-7.0.35"
Using CATALINA_TMPDIR: "D:\apache-tomcat-7.0.35\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.6.0_31"
Using CLASSPATH:       "D:\apache-tomcat-7.0.35\bin\bootstrap.jar;D:\apache-tomcat-7.0.35\bin\tomcat-juli.jar"
D:\apache-tomcat-7.0.35\bin>shutdown.bat
Using CATALINA_BASE:   "D:\apache-tomcat-7.0.35"
Using CATALINA_HOME:   "D:\apache-tomcat-7.0.35"
Using CATALINA_TMPDIR: "D:\apache-tomcat-7.0.35\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.6.0_31"
Using CLASSPATH:       "D:\apache-tomcat-7.0.35\bin\bootstrap.jar;D:\apache-tomcat-7.0.35\bin\tomcat-juli.jar"
Invalid initial heap size: -Xms256m -Xmx512m -XX:MaxPermSize=256m
Could not create the Java virtual machine.

catalina.bat是原创的,我也检查了所有路径和选择(即.JAVA_HOME,JRE_HOME,CATALINA_BASE,CATALINA_HOME,CATALINA_TMPDIR)。tomcat 版本是 7.0.35 java v 1.6


答案 1

这是你的问题Invalid initial heap size: -Xms256m -Xmx512m -XX:MaxPermSize=256m

一些系统(可能是Windows JRE)理解并以小写字母给出值。这里的256m和512m分别表示256MB和512MB。XmsXmx

有些机器(Ubuntu上的JDK 1.7)不理解。所以当我把Xms256m-Xmx512m,Xms256 M-Xmx512M,就开始工作了。small m for MBto =>

P.S ->我在Ubuntu 15(JDK 1.7)上安装IntelliJ时遇到了这个错误,我编辑了intelliJ的文件并开始工作。/bin/idea.vmoptions

以下是错误设置Xmx和Xms值时可能获得的错误列表 -

java -Xmx4056M -Xms4056M HelloWorld

问题:VM 初始化期间发生错误,对象堆 + VM 数据的大小超过最大可表示大小

原因:-Xms 或 -Xmx 的值大于或接近物理内存的大小,因为我的计算机有 4GB 内存。

java -Xmx1056M -Xms2056M HelloWorld

问题:初始化 VM 期间出错,指定的最小和最大堆大小不兼容

原因:-Xms 的值高于 -Xmx

java -Xms2056M HelloWorld

问题:初始化 VM 期间发生错误,无法为对象堆保留足够的空间

原因:仅提供了 -Xms,未提供 -Xmx。如果您有拼写错误,并且您已经指定了两次-Xms而不是-Xmx,您也会收到此错误

java -Xms1024 M -Xmx1024M HelloWorld

问题:VM 初始化期间出错,初始堆太小

原因:如果空间在 1024 和 M 之间,则 JVM 假定 -Xms 的大小仅为 1024 字节,并打印错误,指出 JVM 启动时空间太小


答案 2

这个问题发生在我试图运行Cassandra时。

卸载Java 32位并安装Java 64位为我解决了这个问题。


推荐