(不确定这是否应该继续使用SU ...迁移肯定是一种选择,但更多的程序员在这里阅读问题,所以这里也是如此).
我正在运行Mac OS X 10.8.4,我安装了Apple的JDK 1.6.0_51以及Oracle的JDK 1.7.0_25.我最近为一些需要它的预发布软件安装了Oracle的1.8预览JDK.现在,当我运行/ usr/libexec/java_home时,我得到了这个:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
1.6.0_51-b11-457, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
大.
但是,运行:
$ java -version
Run Code Online (Sandbox Code Playgroud)
返回:
java version "1.8.0-ea"
Run Code Online (Sandbox Code Playgroud)
这意味着Java的默认版本目前是预发布版本,它打破了一些"普通"软件包(在我的情况下,VisualVM).
我无法设置,JAVA_HOME
因为启动应用程序忽略环境变量,即使从命令行启动(例如$ open /Applications/VisualVM.app
).
那么,是否有一个我可以编辑的文件,我可以在全局设置我的JVM订购首选项?
(请不要告诉我启动Java Preferences Panel,因为它根本不起作用:它不包含任何有用的东西,只列出我安装的4个JVM之一.)
更新:
Oracle JVM存在于/Library/Java/JavaVirtualMachines
.重命名JDK 1.8目录jdk1.8.0.jvm.xyz
不会改变任何东西:java_home
仍然在正确的位置找到它,并且运行/ usr/bin/java仍然执行1.8 JVM.这不是synlinks等的问题.
类似问题的答案
虽然这个答案 …
出于某种原因,Maven忽略了OSX上的JAVA_HOME.
我最近从java 8 build 11升级到java 8 build 25并且由于25中的错误修复而删除了11.
我更新了JAVA_HOME
:
:~ > echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
java
并javac
报告正确的版本:
:~ > java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
:~ > javac -version
javac 1.8.0_25
Run Code Online (Sandbox Code Playgroud)
libexec
是正确的:
:~ > /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
CurrentJDK符号链接是正确的:
:~ > ls -la /System/Library/Frameworks/JavaVM.framework/Versions/
total 64
drwxr-xr-x 11 root wheel 374B Nov 19 14:35 ./
drwxr-xr-x 12 root wheel 408B Sep 23 14:29 ../ …
Run Code Online (Sandbox Code Playgroud)