Mac OS X Mavericks中的多个Java安装
问题内容:
我从Oracle下载了适用于Mac OS X 10.9.1的JDK,但由于无法启动Eclipse,因此不得不再次从Apple站点安装另一个Java。
这是我引用的两页。
*在OS X 10.9(Mavericks)上安装Java
*http://support.apple.com/kb/DL1572?viewlocale=zh_CN
现在,我的计算机上安装了三个Java二进制文件。
安装A
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
安装B
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java
java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
安装C
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
我发现可以轻松删除Installation C,但是不确定是否可以。
当我从命令行调用Java时,它指向安装A。
java -version
java version "1.7.0_51"
ls -alF `which java`
lrwxr-xr-x 1 root wheel 74 Jan 15 09:12 /usr/bin/java@ -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
*通过安全删除其中的两个,有什么方法可以仅将一个JDK 1.7用于Mavericks吗?
编辑
经过一些设置和测试后,我仅安装了一个Java(1.6)。我有安装B,现在安装C已链接到安装A。
为了使用eclipse,我必须将Compiler Compliance级别设置为1.6才能使用它(来自帮助java.lang.UnsupportedClassVersionError Unsupported major.minor版本51.0)。
在此处输入图片说明
编辑2
这似乎发生了什么。
-
安装Apple Java
- 安装A
- 安装B是指向A的符号链接
- 安装Oracle Java
安装C
更改了安装B
1. 创建了一个 /System/Library/Frameworks/JavaVM.framework/Versions/A
2. 从安装C复制的文件(不是符号链接)
3. 将符号链接设为当前版本/ A
我尝试仅通过删除Apple Java来安装Oracle Java,但是却出现安装错误,因此我猜想需要安装Apple Java来安装Oracle Java。
问题答案:
指定Eclipse的JVM您可以在Eclipse使用指定的JDK版 本在eclipse.ini。这将解决启动Eclipse的问题。
-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java
警告:请在之前 添加此配置-vmargs。
使用jenv掌握Java环境
使用jenv维护多个JDK版本要容易得多。
jenv相当于rbenv,但适用于Java环境。它使您可以轻松地在多个JDK安装(已提供)之间切换,并配置每个项目要使用哪个JDK。
Eclipse JDK
在Eclipse中设置JDK