【已解決】執行Eclipse出錯:Failed toload the JNI shared library

guomutian911發表於2015-04-13

【已解決】執行Eclipse出錯:Failed toload the JNI shared library

【問題】

執行AndroidADT,即Eclipse出錯:

Failed to load the JNIshared library

C:\Program Files(x86)\Java\jre6\bin\client\jvm.dll


其中背景是:

1.之前已經可以正常執行的,即已經正常安裝了JRE6的。

2.後來刪除掉了JRE6了。

3.剛剛又去重新安裝了JRE6,結果還是錯誤依舊。

4.並且已經確定了:C:\ProgramFiles (x86)\Java\jre6\bin\client\jvm.dll是存在的。

【解決過程】

1.現在想辦法搞清楚,為何還是不行。

難道需要重啟電腦才可以???

2.去隨便看了看,當前的eclipse的配置:

D:\tmp\tmp_dev_root\android\adt-bundle-windows\eclipse\eclipse.ini中是:

-Dosgi.requiredJavaVersion=1.6
明顯是要求java是1.6版本的。

3.參考了:

http://aquilo.diandian.com/post/2012-05-27/21832516

感覺沒太大幫助。

4.又參考:

http://dongdong1314.blog.51cto.com/389953/490211

再去確認一下之前裝的JDK,是

jdk-6-windows-amd64.exe,也的確是64位的。結果還是不行啊。

5.重新安裝jdk-6-windows-amd64.exe一下試試。

6.想起來了。這樣肯定也有問題。因為上面提示的是C:\Program Files (x86)\表示eclipse希望的是32位的java。所以,此處,看來還是需要找到,是不是哪裡的,環境變數,還是登錄檔中,殘留的這個路徑,去刪除掉,更新為最新的C:\Program Files\的java的路徑才可以。

7.果然,在PATH環境變數中,看到了,有兩個java相關的路徑:

C:\Program Files (x86)\Java\jre6\bin :是之前加上去的,估計是安裝jre後自己加上去的

C:\Program Files\Java\jdk1.6.0\bin:是剛裝的JDK後,自己手動加上去的,所以很簡單了。

先去刪除舊的路徑:

C:\Program Files (x86)\Java\jre6\bin結果問題依舊。

8.最後終於發現了,原來是,環境變數:

JAVA_HOME=C:\Program Files (x86)\Java\jre6

所以,始終找不到對應的值,現在把其改為:

JAVA_HOME=C:\Program Files\Java\jdk1.6.0

並且,PATH中,也已經有了:%JAVA_HOME%\bin這樣,應該就可以了。

去試了試,果然可以了,可以正常執行Eclipse,此處的ADT了:


【總結】

當執行基於Java的東西,此處是Eclipse(用於開發Android的ADT),如果出現:

Failed to load the JNI shared library

C:\Program Files (x86)\Java\jre6\bin\client\jvm.dll

之類的問題時,則很簡單,先去看看,對應的路徑中,是否真的存在jvm.dll

如果沒有,那很明顯,需要自己去安裝對應的版本自己去Oracle官網下載,對應的版本的,JRE或JDK比如我的是,x64的Win7,下載了個:jdk-6-windows-amd64.exe。再去確認一下Java的環境變數是否正常:JAVA_HOME:應該是你的JRE或者JDK的安裝路徑

比如我這裡,64位的win7,安裝的是64位的JDK 6,所以安裝後,對應路徑為:

C:\Program Files\Java\jdk1.6.0

PATH:path中應該包含java的bin目錄,類似於

C:\Program Files (x86)\Java\jre6\bin\

提示:但是由於已經設定好了JAVA_HOME了,所以可以更加通用的寫為

%JAVA_HOME%\bin

另外,提示一下:

64位的(Win7)系統中,對應的軟體安裝目錄:

32位的軟體,預設安裝到:C:\ProgramFiles (x86)\

64位的軟體,預設安裝到:C:\ProgramFiles\

相關文章