每次我试图运行该程序时,都会重复得到以下异常。

虚拟机初始化时出错 无法为对象堆预留足够的空间 无法创建Java虚拟机。

我试图增加我的虚拟内存(页面大小)和RAM大小,但没有效果。

我怎样才能消除这个错误?


当前回答

不管怎样,下面是解决方法: 单击“开始”->控制面板->系统->高级(tab)->环境变量->系统变量->新建: 变量名:_JAVA_OPTIONS 变量值:-Xmx512M

OR

更改ant调用,如下所示。

   <exec
        **<arg value="-J-Xmx512m" />**
    </exec>

这对我很管用。

其他回答

我得到了同样的错误,并通过在run.conf.bat中配置它来解决这个问题

在Jboss5x中使用配置Run .conf.bat运行JVM

如果在传递语句时没有可用的空闲内存,请在run.conf.bat中进行更改

set "JAVA_OPTS=-Xms512m -Xmx512m -XX:MaxPermSize=256m"

在CASSANDRA_HOME/bin/cassandra.bat中,您会发现以下配置

REM JVM Opts we'll use in legacy run or installation
set JAVA_OPTS=-ea^
 -javaagent:"%CASSANDRA_HOME%\lib\jamm-0.3.0.jar"^
 -Xms**2G**^
 -Xmx**2G**^

你可以将2G减少到更小的数字,例如1G或更小,它应该可以工作。

如果你是在unix系统上运行,同样,适当地改变.sh文件。

我得到了同样的错误,它得到解决时,我删除临时文件使用%temp%和重新启动eclipse。

我在使用javac时遇到了这个问题,它似乎没有选择命令行选项,

-bash-3.2$ javac -Xmx256M HelloWorldApp.java 
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

所以这里的解决方案是设置_JAVA_OPTIONS

-bash-3.2$ export _JAVA_OPTIONS="-Xmx256M"
-bash-3.2$ javac HelloWorldApp.java 
Picked up _JAVA_OPTIONS: -Xmx256M

这编译得很好。

我在RAM很大但内存上限较低的机器上遇到过这种情况。Java决定分配一个大堆,因为它检测到机器中的ram,但由于ulimit,它不允许分配它。

我也有类似的问题。我在一台64位机器上安装了32位版本的Java。

通过卸载该版本并安装64位版本的Java。我解决了这个问题。