我已经开始看到使用32位(64位)Java 6(在Windows 8 x64上)的以下错误。这不是一个问题,直到安装了一些Windows更新.....)调用ant脚本
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
有人见过吗?我在SO和其他地方做了一些挖掘,还没有找到任何解决
这个问题的方法。编辑8/24
到目前为止,我尝试了以下方法来解决这个问题,但都没有成功:
在系统环境变量中设置
_JAVA_OPTIONS
,最大堆大小为3gb在
cmd
中设置JVM_OPTS
,然后再调用ant,最大堆大小为3gb在进行实际的java调用时传递
-Xms
和-Xmx
参数,如%JAVA_HOME%binjava -Xms512m -Xmx2048m org.apache.tools.ant.Main
在调用ant前设置
ANT_OPTS
变量卸载这些问题之前的Windows更新。
有人有不同于以下的解决方案吗?由于其他的尝试都不奏效……
当您在32位windows(或32位windows模拟器)上运行时,您只有大约1.2 GB - 1.5 GB的虚拟内存可用。这个大小取决于在该空间中可能运行的其他内容,因为它并不总是在内存空间方面将程序彼此隔离(即内存空间是限制和共享的)
所以在更新windows之后,它可能已经安装了一个在Java之前运行的新程序,或者更新了一个使用更多内存的现有程序。
最简单的解决方案是使用64位JVM,它不会有这个问题。或者你必须减小最大堆大小