1. 程式人生 > >64位Eclipse執行提示“Failed to load the JNI shared library”的一個解決方案

64位Eclipse執行提示“Failed to load the JNI shared library”的一個解決方案


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已經“聰明”地記住了正確的配置。