64位Eclipse运行时提示“Failed to load the JNI shared library /Java/jre6/bin/client/jvm.dll”的一个解决方案
由于开发环境改变,改用64位环境替换了原来的32位。结果启动Eclipse报错(注:XX/是java JDK安装目录):
"Failed to load the JNI shared library “XX/Java/JDK6/bin/..jre/bin/client/jvm.dll”
其他环境要用到默认的JDK 1.6.0_37 32位,默认并配置在默认变量JAVA_HOME中,路径为XX/Java/JDK6。
于是新装JDK 1.6.0_37 64位,路径为XX/Java/JDK64,启动Eeclipse再次报错,同上。
仔细想想,Eclipse启动时应该会先从本身配置中先寻找JVM,于是在Eclipse.ini中增加两行:
-vm
XX/Java/JDK64/bin/javaw.exe
依然出错,同上。于是索性将系统环境变量中,JAVA_HOME设置为:XX/Java/JDK64。这次能够正常启动了,可是,其他系统要用32位的时候,又报同样错误。仔细查看Eclipse.ini,发现OpenFile后增加了如下项:
-vm
XX/Java/JDK64/bin/javaw.exe
结果如下:
openFile
-vm
D:/Program Files/Java/jdk1.7.0_45/bin/javaw.exe
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Xms40m
-Xmx512m
而我原来是加在文件末尾,位置错误,所以没有生效。
再尝试用XX/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已经“聪明”地记住了正确的配置。