当我打字时java -version
我仍然得到抢先体验版本而不是稳定的 JDK 7u10。请问如何修复?我正在研究苹果系统山狮。
ls /System/Library/Frameworks/JavaVM.framework/Versions
- 1.5.0
- 1.6
- 1.6.0
- 一个<--?
- 當前<--?
- 当前JDK <-- ?
什么?请问代表什么?
/usr/libexec/java_home -V
Matching Java Virtual Machines (3):
1.7.0_10, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
1.6.0_37-b06-434, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_37-b06-434, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home
问题是java -version
-->java version "1.7.0_10-ea"
EA!
最糟糕的是给/Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home/bin/java -version
我看看EA。
答案1
1.7 JDK 不会进入/System/Library/Frameworks
,而是进入/Library/Java/JavaVirtualMachines
。运行时/usr/bin/java
它会选择要使用的适当 Java 安装
- 如果你
JAVA_HOME
设置了环境变量,那么它将使用该版本 /Library/Java/JavaVirtualMachines
否则,它将从和中可用的JDK中选择“最佳”安装的JDK/System/Library/Java/JavaVirtualMachines
,您可以运行/usr/libexec/java_home
以查看系统认为哪一个是“最佳”的。
当然,如果你之前/Library/Java/JavaVirtualMachines/<something>/Contents/Home/bin
手动添加了,那么将意味着特定版本,而不是系统选择的版本。你可以通过运行来检查。PATH
/usr/bin
java
which java
让问题更加复杂的是,中还有另一个 JRE 副本/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
,它用于浏览器插件和.app
没有嵌入自己的 JRE 的 1.7 样式包。