错误描述
之前一直使用MyEclipse,没有遇到过启动时报错,但是使用Eclipse IDE for Java EE Developers时却报出如下错误:
错误分析
从错误提示看出,1.4.2_15版本的jvm不满足当前eclipse版本。那么为什么会出现这个错误?第一个答案必然是Eclipse启动需要jvm,这也是合理的,因为eclipse的确是java编写的它运行必须要jvm。那么我们就要考虑eclipse的启动过程是如何使用jvm的:Eclipse 首先执行 -vm 参数;如果没有-vm参数,则查找 eclipse\jre 子目录;如果没有找到,Eclipse 将查找在系统中注册的 Java 运行期环境。
那么通过这个过程我们可以从以下分析:
1、我们没有配置vm参数,这是肯定的,因为默认下载后没有做这样的操作。
2、eclipse下没有jre目录,经确认的确没有
3、没有配置JVM环境变量,经确认环境变量是有的。
那只能从冲突的角度考虑,eclipse在寻找环境变量时找到了1.4版本的jvm。原因可能有:
1、我们的weblogic或oracle中的jdk配置到了环境变量中并且版本是1.4,而且该变量path位置在大于等于jvm1.5版本之前,被eclipse首先加载到(其实它是在寻找javaw.exe文件,下面的命令行启动eclipse会证实)。
2、之前可能安装过jvm并且配置到了path中,特点类似1。
分析得到只能是第二种情况,因为本机器上没有装载weblogic和oracle。那么只能猜测该jvm在那个目录,于是做了一个测试:
1、将jdk1.6的目录配置到path的第一项,启动eclipse成功(这是必然的)。
2、然后移动jdk1.6的目录到第二个位置上启动eclipse没有成功,OK,问题目录找到了必然在第一个位置的目录上(本系统是%SystemRoot%\system32;)。
3、在操作系统c盘win32下的确看到了javaw.exe文件,并且在c盘programfiles下找到了java/j2re1.4.2_15和错误版本完全一致。
总结:
eclispe启动需要javaw.exe文件,寻找顺序如上描述。并且java2.exe会调用jre的文件。
从命令行启动eclipse
在命令行首先进入eclipse的安装目录,如下图示:
执行eclipse -vm c:\jdk6\bin\javaw。然后就会出现启动页面,并启动成功。
jre目录拷贝
将jdk6的jre目录拷贝到eclipse的安装目录下,然后启动,启动成功。