Cloud not reserve enough space for object heap
在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文件里面。找到类似下面的片断:
- <java
- classname="com.liferay.portal.tools.servicebuilder.ServiceBuilder"
- classpathref="service.classpath"
- fork="true"
- newenvironment="true"
- outputproperty="service.test.output"
- >
- <jvmarg value="-Xms512m" />
- <jvmarg value="-Xmx1024m" />
- <jvmarg value="-Xss2048k" />
- <jvmarg value="-XX:MaxPermSize=512m" />
这里即是Liferay Service Builder时所设置的JVM参数,将里面的-xmx1024改为512m,-XX:MaxPermSize改为256m,然后保存,重新执行Service Builder,问题应该即可以解决。