Here, We are trying to change the version to Java SE 8
First run /usr/libexec/java_home -V
which will output something like the following:
Matching Java Virtual Machines (3):
16.0.2 (x86_64) "Oracle Corporation" - "Java SE 16.0.2" /Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home
1.8.202.08 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_202 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-16.0.2.jdk/Contents/Home
Pick the version you want to be the default (1.8.0_202) then:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_202`
Now when you run java -version
you will see:
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
Add the
export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0_202`
line to your shell’s init file.
Updating the .zshrc file should work:
nano ~/.zshrc
paste the line
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8.0_202)
at bottom of the file.
Press CTRL+X
to exit the editor, Press Y to save your changes.
source ~/.zshrc
echo $JAVA_HOME
java -version
Output should be:
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
Top comments (5)
I just set up a new Mac for Java dev, and I can only recommend using SDKMan which allow to download, install and switch between different Java versions just with a CLI command:
sdkman.io/
This is for executing RMI, where JDK 8 is recommended
Ok… uhm. Did you mention RMI anywhere in your article where do you got the information that Java 8 is recommended for RMI over more recent versions? And anyways, I’m pretty sure that SDKMan also provides a JDK8. Did you try that?
Why to try some other third party apps if native method is working fine..
Anyway thanks for advice I will definitely try it out :)
Honestly, I don’t see many reasons not to use it except for „it’s third party“