天天看點

安裝Oracle JDK 7.0與8.0 for Mac OS X後Eclipse啟動報錯的解決之道

啟動 eclipse 時,直接報錯

the jvm shared library "/library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/home/bin/../jre/lib/server/libjvm.dylib"

does not contain the jni_createjavavm symbol.

unable to find any jvms matching architecture "i386".

eclipse[526:14077] error loading /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/macos/libjli.dylib:  dlopen(/library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/macos/libjli.dylib, 265): no suitable image found.  did find:

        /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/macos/libjli.dylib: mach-o, but wrong architecture

既然報 wrong architecture 錯,就看看這兩個檔案到底是什麼狀況:

通過執行 lipo -info /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/home/bin/../jre/lib/server/libjvm.dylib

architectures in the fat file: /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/home/bin/../jre/lib/server/libjvm.dylib are: x86_64

以及 lipo -info /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/macos/libjli.dylib

non-fat file: /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/macos/libjli.dylib is architecture: x86_64

清楚地顯示 architecture: x86_64,于是乎,真正的根源找到了,是因為eclipse是32位的,而oracle jdk 7.0與8.0均為64位的,解決的問題很簡單,下載下傳eclipse 64位for mac os x即可。

因為 /library/java/javavirtualmachines/jdk1.8.0_25.jdk/contents/home/bin/java -d32 -version 執行的結果為:

error: this java instance does not support a 32-bit jvm.

please install the desired version.

繼續閱讀