Solarian Programmer

My programming ramblings

Installing OpenJDK on macOS Mojave

Posted on September 28, 2018 by Paul

Updated 15 May 2019

This is a short note about getting started with Java 11 LTS or Java 12 on macOS. As you probably know, starting with Java 11 there was a big change in the license under which the official Oracle JDK is provided. In short, you need to buy a license from Oracle if you want to use the official JDK in a commercial setting. As far as I know, using Oracle’s JDK on your private computer for testing and learning purposes is allowed.

That being said, for most users OpenJDK is the new JDK of choice, it is provided under an open source license and you don’t need to pay for using it.

At this time, Java 11, the long term release or LTS, of Java is no longer supported on the OpenJDK website. You can still get the archived version, but this is not recommended because it doesn’t include any new security patches. If you still need to use Java 11, use an alternative build like the one from AdoptOpenJDK. From the AdoptOpenJDK page you will download a pkg file that you can install on your macOS machine directly by double clicking on it.

After you’ve installed the AdoptOpenJDK pkg file, check if you can use it with:

1 java -version
2 javac -version

This is what I see on my machine:

1 ~ $ java -version
2 openjdk 11.0.3 2019-04-16
3 OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.3+7)
4 OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.3+7, mixed mode)
5 ~ $ javac -version
6 javac 11.0.3
7 ~ $

If you prefer to use the Java version provided by the OpenJDK website, you will need to use Java 12. Start by getting OpenJDK, chose the macOS version. Extract the archive by double clicking on the file or, assuming it is in your Downloads folder, write this in your Terminal:

1 cd ~/Downloads
2 tar xf openjdk-12.0.1_osx-x64_bin.tar.gz

Next step, is to move the extracted folder to a place where macOS searches for Java JDK:

1 sudo mv jdk-12.0.1.jdk /Library/Java/JavaVirtualMachines/

Now, check if you’ve successfully installed the JDK with:

1 java -version
2 javac -version

This is what I see on my machine:

1 ~ $ java -version
2 openjdk version "12.0.1" 2019-04-16
3 OpenJDK Runtime Environment (build 12.0.1+12)
4 OpenJDK 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
5 ~ $ javac -version
6 javac 12.0.1
7 ~ $

Just to be sure that everything works, try to compile and run a simple program:

1 class HelloWorld {
2     public static void main(String[] args) {
3         System.out.println("Hello World!");
4     }
5 }

Save the above as and compile it with:

1 javac

If you want to run the compiled version:

1 java HelloWorld

This is what I see on my machine:

1 ~ $ javac
2 ~ $ java HelloWorld
3 Hello World!
4 ~ $

Side note, you can also run directly the program, without the separate compilation step with:

1 java

but this is usually slower than compiling the code with javac and running the compiled code.

Show Comments