我正在研究OS X Mavericks 10.9.5。我已经在OSX上安装了jdk 1.6。我正在尝试安装java 1.8 jre以使用最新版本的Eclipse。我只是去了oracle网站并获得了dmg。
安装正常,没有错误。
然而,最新版本的Eclipse继续使用旧版本。来自终端java -version
的同一故事已返回java version "1.6.0_65"
,而which java
已返回/usr/bin/java
这是指向/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
的链接,因此我删除了该链接,并将其重新创建为/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
}似乎是java version "1.8.0_40"
。
此时eclipse会返回错误:
The JVM shared library "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/../lib/server/libjvm.dylib"
does not contain the JNI_CreateJavaVM symbol.
这完全不准确,因为简单
grep JNI_CreateJavaVM /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/../lib/server/libjvm.dylib
返回
Binary file /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib/server/libjvm.dylib matches
我还尝试将该路径添加到Eclipse.app目录中的info.plist,但此时没有任何工作,我没有选择......
有什么建议吗?
答案 0 :(得分:7)
我认为问题在于链接。 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
链接到safari的java插件,这与java的常规版本不同。
更改链接后,您将链接从有效的jvm更改为插件。
java -version
返回java的默认版本,在Mac上为jdk 6,并附带你的mac。要获取所有版本的java的位置,请运行/usr/libexec/java_home
,这在我的Mac上会导致/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
。
列出所有Java安装的另一种方法是打开Java控制面板,该面板应该可以从“系统偏好设置”中打开。
希望这有帮助!
答案 1 :(得分:1)
您可以使用-vm
开关在Unix和bin/java
下指出任何Java VM 可执行文件:bin\javaw.exe
。然后,它将自动使用可执行文件的路径(最多bin
)作为Eclipse运行的VM的基础。请注意,您可能仍需要将首选项和/或项目设置(在项目属性或配置窗口中键入JRE
)设置为相同或任何其他JRE。