我遇到从JDK 1.7升级的问题 – > 1.8在OSX上。升级已完成,但javac仍然返回1.7作为版本。
我从Oracle的主页下载了JDK 8_u5,然后运行安装程序。
我还采取了以下步骤,安装后:
> export JAVA_HOME=`/usr/libexec/java_home -v 1.8` (Executed in my .bashrc file)
> echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
> javac -version
javac 1.7.0_21
> $JAVA_HOME/bin/javac -version
javac 1.7.0_21
> $JAVA_HOME/bin/java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
我已经经历和删除Java 1.7(和所有其他JDK版本),然后重新运行安装程序:
> ls /Library/Java/JavaVirtualMachines
jdk1.8.0_05.jdk
仍然没有用,javac报告版本为1.7.0_21
> which javac
/usr/bin/javac
> ls -ltra /usr/bin/javac
[snipped] /usr/bin/javac -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/javac
在该路径中,Current是A的符号链接.A / Commands的内容是一系列文件(而不是符号链接)。
> cd A/Commands
> ./javac -version
javac 1.7.0_21
> ./java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
编辑
继原来的帖子,我已经做了一些挖掘jenv,如this answer建议。
> jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home
> jenv global oracle64-1.8.0.05
> jenv version
oracle64-1.8.0.05 (set by /Users/martypitt/.jenv/version)
> jenv info java
Jenv will exec : /Users/martypitt/.jenv/versions/oracle64-1.8.0.05/bin/java
> jenv info javac
Jenv will exec : /Users/martypitt/.jenv/versions/oracle64-1.8.0.05/bin/javac
> javac -version
javac 1.7.0_21
这种分散在我的想法,这是一个随机的javac潜伏在我的路径,这是不知何故被调用。
可以肯定的是,我完全禁用了我的Java,并再次尝试:
> cd /Library/Java/JavaVirtualMachines
> ls
jdk1.7.0_55.jdk
jdk1.8.0_05.jdk
> sudo rm -rf *
> ls
<>
> java -version
java version "1.6.0_65"
> javac -version
javac 1.6.0_65
> which javac
/usr/bin/javac
> java -version
java version "1.8.0_05"
> javac -version
javac 1.7.0_21
更新
我试图删除所有JDK,XCode和所有开发工具,并重新安装新鲜。
结果相同。
然而,我仍然在亏损 – 我从哪里去?如何获得javac 1.8安装?