一直用Eclipse开发java,突然有这么一天,无法启动了,splash窗口显示“Failed to create the Java Virtual Machine”,结果发现eclipse和myeclipse都打不开了,提示Failed to create the Java Virtual Machine!
1.问题现象
第一感觉是jdk问题,于是重装了jdk,配置了环境变量,但eclipse和myeclipse还是打不开,百度一搜,要改配置文件eclipse.ini和myeclipse.ini但却不知在那个目录下,可恨的是搜不到该文件
找了很久才发现,原来就在第一个目录下
修改eclipse.ini配置文件,找到下面的片段:
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
修改为:
–launcher.XXMaxPermSize
128M
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
128m
保存后重启,正常启动了。
第二天,问题又出现了。
尝试修改其他参数,当如下修改参数时:
#最后一行
-Xmx512m
修改为:
-Xmx256m
eclipse正常启动了。
2.java虚拟机初始化失败!寻找eclipse解压路径
3.寻找eclipse初始化文件
4.右击打开(此处以ultraedit打开为例)
5.打开寻找初始化。虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制设置(原256,设置为128)
注意:此处设置不可太小,且有两处,图中已有标注
6.保存重启eclipse
说明:PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)等这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。
-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。
-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space
其他解决方案:
方法一:
你把JDK的bin路劲配置在环境变量PATH里面,增加在PATH变量值的最后面,增加的内容类似于:
;C:\Program Files\Java\jdk1.6.0_21\bin;
方法二:
创建eclipse的快捷方式,然后在快捷方式的路径后面增加一个参数,类似于:
eclipse.exe -vm "C:\Program Files\Java\jdk1.6.0_21\bin\javaw.exe"
随便一种都可以启动Eclipse了。