Mac OS X Mavericks中的多个Java安装
我从Oracle下载了Mac OS X 10.9.1的JDK ,但我不得不再次从Apple网站安装另一个Java,因为我无法用它启动eclipse。
这是我提到的两页。
- 在OS X 10.9上安装Java(Mavericks)
- http://support.apple.com/kb/DL1572?viewlocale=en_US
现在我的计算机上安装了三个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)
我发现我可以轻松删除安装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?
编辑
经过一些设置和测试后,我只安装了一个Java(1.6)。 我有安装B,现在安装C链接到安装A.
对于使用eclipse,我必须将Compiler Compliance级别设置为1.6才能使用它(来自帮助java.lang.UnsupportedClassVersionError Unsupported major.minor版本51.0 )。
EDIT2
这似乎发生了什么。
-
安装Apple Java
- 安装A.
- 安装B是A的符号链接
-
安装Oracle Java
- 安装C.
- 更改了安装B
- 创建了
/System/Library/Frameworks/JavaVM.framework/Versions/A
- 从安装C复制的文件(不是符号链接)
- 创建符号链接当前版本/ A.
- 创建了
我尝试通过删除Apple Java来安装Oracle Java,但是我遇到了安装错误,所以我想安装Oracle Java需要Apple Java。
指定Eclipse的JVM
您可以在eclipse.ini
指定JDK版本以用于Eclipse 。 这将解决启动Eclipse的问题。
-vm /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin/java
警告 : 在 -vmargs
之前添加此配置。
使用jenv掌握Java环境
使用jenv维护多个JDK版本要容易得多 。
jenv相当于rbenv,但适用于Java环境。 它允许在几个JDK安装 (已经存在) 之间轻松切换 ,并配置每个项目使用哪个。
Eclipse JDK
- 在Eclipse中设置JDK
似乎可以删除oracle JDK。 对于eclipse,我可以从Java Build Path – > JRE System Library – > Installed JRES – > Add …添加Installation A作为默认JRE。
- java.lang.ClassNotFoundException:org.glassfish.jersey.servlet.ServletContainer
- 有没有办法让eclipse报告一般的“catch(exceptione)”作为错误/警告(在java中)?
- 使用JUnit运行测试用例时,Eclipse Debug中禁用了Drop to framefunction
- 缺少Eclipse中的基本JavaDoc
- 如何适应多种编码风格? (git与IDE)
- Glassfish 3.1 Eclipse中的CREDENTIAL_ERROR
- Eclipse SWING应用程序:仅在抛出未捕获的exception后才会触发断点
- Eclipse:代码完成时的黑名单类型
- Eclipse随机停止启动