关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

时间:2021-03-19 00:46:11

今天在机子上使用Eclipse时候打开发现这两个问题,通过查阅资料膜拜大神博客得知解决方法,特此整理下来,方便后来遇到此问题的小伙伴们。

一开始打开Eclipse时候出现问题现象1,问题1解决以后就出现了问题2,。

1.问题1现象(eclipse failed to create the java virtual machine)

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

2.问题1解决方法

这是创建Java虚拟机初始化失败,找到Eclipse解压路径以及初始化文件

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

用ultraEdit打开,出现如下图所示情况时,点击“否”或者“取消”皆可

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

出现如下图所示,此时将圆圈里的数字都改为显示的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与locking is not possible in the directory问题的解决

更改后文件为下图所示(红色圆圈中为所做改动之处)

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

保存以后重新打开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:\Java\jdk1.6.0_29\bin\javaw.exe
----------
注意这个参数的放置位置,我放在文件最下面时还是不行,放在-vmargs参数上面就可以了。

PS:此方法我木有尝试,如上述方法不能解决或出现问题时可选择此方法解决。

-------------------------------------------------------------------------------------------------------------------------------------

可是就在我兴高采烈地准备打开心爱的Eclipse开始我苦逼的学习时刻时候,我发现,另一个问题接踵而来,妈蛋 = =

5.问题2现象(locking is not possible in the directory)

其具体现象如下图所示:

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

6.问题2解决方法

依然按照问题1解决方法找到并打开 Eclipse directory中的eclipse.ini

在文件最后加入加入这句话:“-Dosgi.configuration.area=@user.home/.eclipse”(注意添加为引号内的)

如下图所示:

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决

上图中圆圈内为新加入内容。

最后保存, 重新打开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.

啊!终于可以顺利的学习了!

关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决
关于打开Eclipse时出现eclipse failed to create the java virtual machine与locking is not possible in the directory问题的解决