开始看到对象堆异常Java 6

时间:2015-08-07 15:09:49

标签: java ant jvm out-of-memory heap-memory

我开始使用32位(和64位)Java 6(在Windows 8 x64上看到以下错误。在安装某些Windows更新之前这不是问题.....)来电蚂蚁脚本

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

以前有人见过吗?我已经在SO和其他地方做了一些挖掘,并没有遇到任何解决这个问题的事情

编辑8/24

到目前为止,以下是我试图解决这个问题的一些事情,其中​​没有一个有效:

  1. 在系统环境变量中设置_JAVA_OPTIONS,最大堆大小最多为3gb
  2. 在调用ant之前在JVM_OPTS中设置cmd,再次将最大堆大小调整为3gb
  3. 在进行实际的java调用时传入-Xms-Xmx个参数,如%JAVA_HOME%\bin\java -Xms512m -Xmx2048m org.apache.tools.ant.Main
  4. 在调用ant
  5. 之前设置ANT_OPTS变量
  6. 在这些问题出现之前卸载Windows更新。

    有没有人有一个与以下不同的解决方案?由于其他尝试没有奏效..

1 个答案:

答案 0 :(得分:1)

当您在32位Windows(或32位Windows模拟器)上运行时,您只有大约1.2 GB - 1.5 GB的可用虚拟内存。这个大小取决于你可能在该空间中运行的其他内容,因为它并不总是在内存空间方面将程序彼此隔离(即内存空间是限制和共享的)

因此,在更新Windows之后,它可能已经安装了一个在Java之前运行的新程序,或者更新了使用更多内存的现有程序。

最简单的解决方案是使用没有此问题的64位JVM。或者你必须减少最大堆大小。