DEV Community

Cover image for Installing (multiple) Java on MacOS managed by jEnv
Jimmy Tang
Jimmy Tang

Posted on

Installing (multiple) Java on MacOS managed by jEnv

Install some Java!

I'm gonna install three version's from openjdk using Homebrew! We should all know what Homebrew is by now...
$ brew install openjdk@17
$ brew install openjdk@21

Create some Symlinks

As far as I understand it MacOS has a special Java VM folder where it installs the JVMs. We'll create symlinks to versions we just installed from Homebrew.
sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
sudo ln -sfn /opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-21.jdk

Install jEnv

jenv is a Java installation version manager. Install with Homebrew as well:
$ brew install jenv

Add the following to your shell's .rc file so jenv is executed upon terminal startup

# Setup JEnv to install run
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# Have JAVA_HOME set by JEnv for us...
jenv enable-plugin export
Enter fullscreen mode Exit fullscreen mode

Source the file to apply the changes
source ~/.zshrc # or ~/.bash_profile, ~/.bashrc, etc.

Add the JVMs to jenv

Add the versions in Java VM folder to jenv so it can manage them
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/
jenv add /Library/Java/JavaVirtualMachines/openjdk-21.jdk/Contents/Home/

See the versions installed by jenv

You can see the installed versions by echo ${JAVA_HOME}

$ jenv versions
* system (set by /Users/user/.jenv/version)
  17
  17.0
  17.0.12
  21
  21.0
  21.0.4
  openjdk64-17.0.12
  openjdk64-21.0.4
Enter fullscreen mode Exit fullscreen mode

See which version of Java you're using:

$ java -version
openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment Homebrew (build 17.0.12+0)
OpenJDK 64-Bit Server VM Homebrew (build 17.0.12+0, mixed mode, sharing)
Enter fullscreen mode Exit fullscreen mode

Set/unset global version of Java

$ jenv global 21.0.2
$ jenv global --unset
Enter fullscreen mode Exit fullscreen mode

Set/unset local version of Java

This will add a .java-version file in the directory you're currently in so you can commit it as a part of your Java project.

$ jenv local 21.0.2
$ jenv local --unset
Enter fullscreen mode Exit fullscreen mode

Congrats! You've just installed Java on your MacOS! Have fun on your Java/Kotlin projects! πŸ₯³

Top comments (0)