原文转自:http://www.cnblogs.com/steararre/p/4037453.html
今天在机子上使用Eclipse时候打开发现这两个问题,通过查阅资料膜拜大神博客得知解决方法,特此整理下来,方便后来遇到此问题的小伙伴们。
一开始打开Eclipse时候出现问题现象1,问题1解决以后就出现了问题2,。
1.问题1现象(eclipse failed to create the java virtual machine)
2.问题1解决方法
这是创建Java虚拟机初始化失败,找到Eclipse解压路径以及初始化文件
用ultraEdit打开,出现如下图所示情况时,点击“否”或者“取消”皆可
出现如下图所示,此时将圆圈里的数字都改为显示的1/2就可以了(如,原始值为512则改为256,原始值为256则改为128等),注意,某经验(http://jingyan.baidu.com/article/afd8f4de466baf34e286e917.html)某知道(http://zhidao.baidu.com/link?url=dRzVjFMK_2MW1smnuLH4dIKEmV3YlDQHPABoV3VkRDfKt8nE_WmV50yiY3vSDu8gqOiCaKtgRGNFAoqW4UxoYa)所列出的
方法没有说明具体怎么改,不同版本的初始化文件内容不同。
更改后文件为下图所示(红色圆圈中为所做改动之处)
保存以后重新打开Eclipse完美解决“eclipse failed to create the java virtual machine”的问题。
3.问题1解决方法参考资料
感谢此博客博主(http://blog.csdn.net/yuanfei_1988/article/details/5919168)但是博主只是对前两个进行了当前值改为1/2的变动,但是
我按照此方法没有修复这个问题,所以我就把4个值都改了,这才管用。
以下引自上述博客:
----------------------------------------------------------------------------------------------------------------------------------
“虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制设置。
说明: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”
------------------------------------------------------------------------------------------------------------------------------------
4.问题1另一解决方法(貌似抓住了问题的根本)
感谢@wucccsk 与@JustDoNow 在此博客(http://blog.csdn.net/yuanfei_1988/article/details/5919168)评论区给出的另一种解决方法并做出了相应的解释,如下:
个人认为,如果机器已经装了jdk了,在eclipse.ini中增加jvm的完整路径的方法更好一点。如果不设置vm选项,有可能eclipse会使用自带的java虚拟机,这样需要的内存就会超过默认的256m的限制了,是这个原因。。。
找到了另一个解决方案,就是在eclipse.ini中增加jvm的完整路径:
-vm
D:Javajdk1.6.0_29injavaw.exe
----------
注意这个参数的放置位置,我放在文件最下面时还是不行,放在-vmargs参数上面就可以了。
PS:此方法我木有尝试,如上述方法不能解决或出现问题时可选择此方法解决。
-------------------------------------------------------------------------------------------------------------------------------------
可是就在我兴高采烈地准备打开心爱的Eclipse开始我苦逼的学习时刻时候,我发现,另一个问题接踵而来,妈蛋 = =
5.问题2现象(locking is not possible in the directory)
其具体现象如下图所示:
6.问题2解决方法
依然按照问题1解决方法找到并打开 Eclipse directory中的eclipse.ini
在文件最后加入加入这句话:“-Dosgi.configuration.area=@user.home/.eclipse”(注意添加为引号内的)
如下图所示:
上图中圆圈内为新加入内容。
最后保存, 重新打开eclipse完美修复!
7.问题2参考资料
(1)某经验:http://jingyan.baidu.com/article/a17d52853a90998099c8f249.html
(2)某贴吧:http://tieba.baidu.com/p/3032965697(6楼)
Inside the Eclipse directory you can find a eclipse.ini file. There you can put the vm arguments, although the one suggested by Eclipse won't work.
My environment started working with this one:
-Dosgi.configuration.area=@user.home/.eclipse
This way, each user inside the environment that run the Eclipse program, will create a different .eclipse directory inside the particular home, with full rights and zero problems.
啊!终于可以顺利的学习了!