当前位置: 代码迷 >> 综合 >> 上篇 下篇 Cloud not reserve enough space for object heap
  详细解决方案

上篇 下篇 Cloud not reserve enough space for object heap

热度:35   发布时间:2023-12-10 20:42:13.0

在Liferay中执行Builder Service时,有时候会出现下面的错误:

Java Result:1
Cloud not create the Java virtual machine.
Error occureed during initalization of VM
Cloud not reserve enough space for object heap

此问题的原因在编译的时候为JVM分配的内存大于了剩余的物理内存大小。本质原因就是物理内存太小了。解决方法就有两个:

加大物理内在

1、直接升级电脑,添加内存。

2、如果内存够大(4G+),则检查操作系统是不是64位,安装的JDK是不是64位。

调整Liferay编译时所分配的内存

执行Service Builder时,执行的JVM的内存分配是在ant文件里面配置的,在SDK目录下面的build-common-plugin.xml文件里面。找到类似下面的片断:

  1. <java  
  2.     classname="com.liferay.portal.tools.servicebuilder.ServiceBuilder"  
  3.     classpathref="service.classpath"  
  4.     fork="true"  
  5.     newenvironment="true"  
  6.     outputproperty="service.test.output"  
  7. >  
  8.     <jvmarg value="-Xms512m" />  
  9.     <jvmarg value="-Xmx1024m" />  
  10.     <jvmarg value="-Xss2048k" />  
  11.     <jvmarg value="-XX:MaxPermSize=512m" />  

这里即是Liferay Service Builder时所设置的JVM参数,将里面的-xmx1024改为512m,-XX:MaxPermSize改为256m,然后保存,重新执行Service Builder,问题应该即可以解决。


http://www.huqiwen.com/2013/10/28/cloud-not-reserve-enough-space-for-object-heap/

  相关解决方案