1.问题现象:

前段时间在用eclipse部署项目过程中出现java虚拟机初始化失败,如图:

 

版本是:eclipse-jee-helios-SR1-win32.zip

JDK版本是:1.6.0_24

2.解决方法:

在eclipse官网的论坛搜索,发现此问题是一bug。

“The Java bug wasclosed for voting and comments at 6969236 on the Java BugParade because thechange has been reverted; the related Eclipse bug report is open for oting andcomments at bug 319514. ”-引用eclipse官网

 

在修复版本推出之前它提供了一个解决方法:

打开eclipse目录下的eclipse.ini文件,修改–launcher.XXMaxPermSize属性,其中此属性有两处

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M

-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m

--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

将其值改为128m即可,如下。(事实上,只改后面一个就可以,启动eclipse时以后者为准)

-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
128M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
128m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m

然后就可以成功启动。

 

说明:PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象等,这些可反射(reflective)对象分配内存限制设置(原256,设置为128)

注意:此处设置不可太小,且有两处,这些内存不包括在Heap(堆内存)区之中。

-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。

-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐