昨天要新导入eclipse一个maven项目,由此重新配置了环境变量,maven的环境变量,以及因为有多个JDK版本造成的问题。
今天上班打开eclipse,结果弹出一个messagebox,报错“could not create the Javavirtual machine ”,然后发现应该是eclipse安装文件夹下的eclipse.ini文件中的内容配置有问题,内容如下:
-vmargs
-Xms512M
-Xmx1024M
-XX:PermSize=64M
-XX:MaxPermSize=128M
如果是因为内存等原因,修改一下上面的这些参数就可以了。
这些参数分别是什么意思呢?google一下:
-vmargs是表示下面是设置JVM(java虚拟机)的参数,也就是说下面都是java虚拟机的参数,对于JVM来说,内存分为堆内存和非堆内存,注意这里的堆不是c/c++里面的堆的概念,因为jvm自己管理内存,所谓堆上的内存就是jvm可以分配给java应用程序使用的内存。
由-Xms和-Xmx这两个参数限定,而非堆内存则是JVM自己使用的,由-XX:PermSize和-XX:MaxPermSize这两个参数来限定。对于堆内存来讲,JVM根据剩余的堆内存的多少调整整个堆内存的大小,调整范围就是-Xms(最小)和-Xmx(最大)指定的范围,-XX:PermSize和-XX:MaxPermSize也是同样的道理,如果你不想JVM来动态调整的话,可以把最大和最小值设置相等,默认最小值是物理内存的1/64,最大值是物理内存的1/4,所以这个最大值就受到物理内存的限制(当然还会收到操作系统的限制)。
经过实验发现,如果-Xms的值比-Xmx设置的大则启动会失败;而如果-Xmx和-XX:MaxPermSize设置的值的和比可用的物理内存还大,启动也会失败,我的第一个设置,两者的和超过了1G,而当时可用内存才700M,所以启动会失败,JVM在启动时会检测参数和实际可用内存。
但是结果还是不行!
后来看到有篇文章说删除 C:\Windows\System32 下面的三个 java.exe 、 javaw.exe 、 javaws.exe 文件,然后照做,
启动eclipse报 no java virtual machine was found after searching the following location
依旧不行。不过错误不一样了。
后来查询上面的这个提示信息,看到有文章说:
这是一个JDK没有配置好的问题。解决办法如下:
运行CMD。
在里面输入java -version看有没有版本的提示?有的话说明你的JDK是对的,那么就是Eclipse的问题了。没有参考其他方法。
1)如果没有的话:http://zhidao.baidu.com/link?url=zyswpWneAnFGk-doOEHoIO1owQR3uW9EK7vRI4-BNuSmLN0taQ9Zc18AQYWHohlNDotb1vHOgz5FsjumI5iaJa
依次点击:“我的电脑”-(右键)“属性”-“高级”-“环境变量”,弹出Windows的“环境变量”配置卡。
在“系统变量”栏下执行三项操作:
①新建“Java_Home”,值:JDK所在的绝对路径(例如 D:\Program Files\Java\jdk1.5.0_04\)。
②新建“Classpath”(如果已有,则直接编辑),值: .;%Java_Home%\lib (若值中原来有内容,用分号与之隔开)。
③新建“Path”(如果已有,则直接编辑),值: %Java_Home%\bin; (若值中原来有内容,用分号与之隔开)。
或者
CLASSPATH
C:\Program Files\Java\jdk1.6.0_03\lib;E:\workbench\lib\javax.servlet.jar;
JAVA_HOME
C:\Program Files\Java\jdk1.6.0_03
Path
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\90\Tools\binn\;%JAVA_HOME%\bin;
2)有的话:http://nigelzeng.iteye.com/blog/1585399
看了这个文章之后,又把删除的三个文件给恢复了。
继续报之前的错误。此文章继续继续解释说: