{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

Installing Java 7 on Mac OS X

While you can download the binaries for Java 7 for Windows and Linux from here, the instructions for setting up Java 7 for Mac OS X are a lot more tedious.

Here are the official instructions for Mac OS X: http://wikis.sun.com/display/OpenJDK/Mac+OS+X+Port

You can follow the instructions line by line and get Java 7 installed on your machine. However, these are the things that might go wrong:

Missing binaries in /bin

The installation expects a bunch of binaries to be present in /bin. However, on my Mac OS X, these binaries were present in /usr/bin/. My workaround was to create symlinks in the /bin directories to make the build happy.

 cd /bin/  
ln -s /usr/bin/sed
ln -s /usr/bin/grep

Repeat the above for each binary that is reported missing in /bin.

Missing jni.h

Make sure that the version of XCode is 3.2.5 or more. I had a 3.2.4 version and that didn’t work.

Building JTReg did not work due to a known bug

It is mentioned in the JTReg build documentation but easy to miss it. The following does not work due to a know bug:

make -C make  

Instead try this:

make -C make build  

Wrong installation directory in the official instructions

The official instructions ask you to do this:

mkdir -p ~/Library/Java/JavaVirtualMachines
cp -R build/macosx-universal/j2sdk-bundle/1.7.0.jdk ~/Library/Java/JavaVirtualMachines

That didn’t work for me. Here’s what worked for me:

   mkdir -p /System/Library/Java/JavaVirtualMachines  
cp -R build/macosx-universal/j2sdk-bundle/1.7.0.jdk /System/Library/Java/JavaVirtualMachines

Finally, setting up env vars

The easiest way to make confirm that Java 7 is successfully installed is:

/usr/libexec/java_home --version 1.7  

The output of the above should be:


Then type ‘java -version’ against the above installation

  /System/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/bin/java -version  
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-root_2011_03_16_17_41-b00)
OpenJDK 64-Bit Server VM (build 21.0-b03, mixed mode)

Since I use Java 1.6 on the same machine, I saved the 1.7 path as follows:

   export JAVA7_HOME=/System/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home  

This lets me conveniently switch to Java7, when I need to, and back:

  export JAVA_HOME=$JAVA7_HOME  

Switch back:

  export JAVA_HOME=$JAVA6_HOME  

Using Java7

Simplest way to use test Java7 is via command line

   export JAVA_HOME=$JAVA7_HOME  
export PATH=$JAVA_HOME/bin:$PATH


  javac Test.java  



java Test 

From http://www.vineetmanohar.com/2011/03/installing-java-7-on-mac-os-x/

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks