昨天要新导入eclipse一个maven项目,由此重新配置了环境变量,maven的环境变量,以及因为有多个JDK版本造成的问题。 今天上班打开eclipse,结果弹出一个messagebox,报错“could not create the Javavirtual machine ”,然后发现应该是eclipse安装文件夹下的eclipse.ini文件中的内容配置有问题,内容如下:
-vmargs
如果是因为内存等原因,修改一下上面的这些参数就可以了。
这些参数分别是什么意思呢?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./blog/1585399
看了这个文章之后,又把删除的三个文件给恢复了。 继续报之前的错误。此文章继续继续解释说:
因为我们的eclipse版本需要,需要配置1.8的jdk版本,中间修改的时候,因为程序用的是1.7,环境变量也都修改为1.7了。 这个地方也跟着写的1.7。 此处java版本以及路径都改为1.8即可。 问题终于解决。
|
|