OS X El Capitan and Java: No Fun (till now!)
There's been a bunch of stuff on the interwebs lately about El Capitan and Java issues... here's the simple simple, condensed version of the fix:Quick prereq to the post:
I have, for some time, had the following line in ~/.bash_profile under my login on my machine:
export JAVA_HOME=/Library/Java/Home
At the very least with this setup typing "java -version" at the command line gives me the version I'm looking for. And swapping symlinks to point to real disk locations is fairly easy... it makes it MUCH easier to change JVM versions. Just repoint the symlink to
/Library/Java/JavaVirtualMachines/{jvm_folder}/Contents/Homeand Bob's your uncle... it's done. And no other changes necessary.
So I selected to base this all on /Library/Java/Home being The Correct Location For The Current JVM.
As I said... the above line is in a file called .bash_profile under /Users/{username}. If you have to create it be sure that afterward you open terminal and run
cd ~
chmod u+x .bash_profile
and then restart terminal. That will ensure that JAVA_HOME is always set when you hit Terminal. This makes many things lots easier, but most of all, since most Java packages will check for JAVA_HOME and only go looking for a JVM if not set, it gives you control over the Java version being used to run whatever it is you are trying to run.
So, dude... here's your linkback:
https://oliverdowling.com.au/2014/03/28/java-se-8-on-mac-os-x/
So...
That's why I chose to set JAVA_HOME to /Library/Java/Home and proceed as I have.Download and install Legacy Java 6SE from Apple:
https://support.apple.com/kb/DL1572?locale=en_USDownload and install Java 8 JDK from Oracle:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlChange a system symlink to make the Java 8 JVM the command line default:
cd `echo $JAVA_HOME`
sudo rm Home
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home ./Home
Once done, test with the following command on the command line:
java -versionIf you've done the above correctly your Java apps will launch and your command-line tools (oh, like launching Tomcat) will automatically use the latest JVM.
OH, also... once you've installed the Java 8 JDK you may have to do two other things:
Edit the Java JDK PLIST
Edit the file at /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Info.plist to be:
<key>JVMCapabilities</key>
<array>
<string>CommandLine</string>
<string>JNI</string>
<string>BundledApp</string>
</array>
Add a symlink to point to libserver.dylib
It seems the Oracle installer doesn't create a necessary symlink for the JDK, so you'll need to copy/paste the following commands (there's 2 of them, btw):sudo mkdir -p /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bundle/Libraries
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/server/libjvm.dylib /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bundle/Libraries/libserver.dylib
Give thanks to Oliver from Australia!
Dude is my hero and this wouldn't have happened without his blog post. However he's missing the J2SE 6 install and download and has a bunch of other stuff in there that isn't really relevant anymore.So, dude... here's your linkback:
https://oliverdowling.com.au/2014/03/28/java-se-8-on-mac-os-x/