64位Eclipse运行时提示“Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll”的一个解决方案
由于开发环境改变,改用64位Juno 64位 SP1环境替换了原来的Juno 32位。结果启动Eclipse报错:
"Failed to load the JNI shared library “E:\2000\Java\JDK6\bin\..jre\bin\client\jvm.dll”
其他环境要用到默认的JDK 1.6.0_37 32位,默认并配置在默认变量JAVA_HOME中,路径为E:\2000\Java\JDK6。
于是新装JDK 1.6.0_37 64位,路径为E:\2000\Java\JDK64,启动Eeclipse再次报错,同上。
仔细想想,Eclipse启动时应该会先从本身配置中先寻找JVM,于是在Eclipse.ini中增加两行:
-vm
E:\2000\Java\JDK64\bin\javaw.exe
依然出错,同上。于是索性将系统环境变量中,JAVA_HOME设置为:E:\2000\Java\JDK64。这次能够正常启动了,可是,其他系统要用32位的时候,又报同样错误。仔细查看Eclipse.ini,发现OpenFile后增加了如下项:
-vm
E:/2000/Java/JDK64/bin/javaw.exe
而我原来是加在文件末尾,位置错误,所以没有生效。(邀月注:其实将原来两行放在OpenFile后也可以。)于是,将JAVA_HOME重新设置为:E:\2000\Java\JDK6
再尝试用E:\2000\Java\eclipse\eclipse.exe -clean -nl en_US 重新启动Eclipse ,结果报错:JVM Terminated. Exit code=-1
仔细查看,考虑可能是内存参数问题:
将:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx512m
修改为:
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-Xms40m
-Xmx256m
重新启动,终于正常。
启动正常后,再改回512M,依然可以正常启动Eclipse。似乎Eclipse已经“聪明”地记住了正确的配置。