I'm having issues upgrading from JDK 1.7 -> 1.8 on OSX. The upgrade has completed, but javac still returns 1.7 as the version.
I've downloaded JDK 8_u5 from Oracle's homepage, and run the installer.
I've also taken the following steps, post-install:
> 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)
I've gone through and removed Java 1.7 (and all other JDK versions), and then re-run the installer:
> ls /Library/Java/JavaVirtualMachines
jdk1.8.0_05.jdk
Still no use, javac reports the version as 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
Within that path, Current
is a symlink to A
. The contents of A/Commands
are a series of files (not symlinks).
> 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)
Edit
Further to the original post, I've done some digging with jenv, as suggested on 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
This casts dispersions on my thoughts that this was a random javac lurking in my path, which was somehow getting invoked.
To be sure, I've nuked my Java completely, and tried again:
> cd /Library/Java/JavaVirtualMachines
> ls
jdk1.7.0_55.jdk
jdk1.8.0_05.jdk
> sudo rm -rf *
> ls
<<empty>>
> java -version
java version "1.6.0_65"
> javac -version
javac 1.6.0_65
> which javac
/usr/bin/javac
I then re-downloaded a fresh copy the installer and ran it.
> java -version
java version "1.8.0_05"
> javac -version
javac 1.7.0_21
Update
I tried removing all JDK's, XCode and all developer tools, and re-installed fresh.
Same results.
However, I'm still at a loss -- where do I go from here? How do I get javac 1.8 to get installed?
See Question&Answers more detail:
os