Forgot to set the
JAVA_HOME environment variable? If you use multiple versions of Java in your development environment, perhaps you wished there was a better way to switch from one to the other, instead of remembering to set the
JAVA_HOME environment variable.
jEnv is a command line tool to help you forget how to set the
Here are the steps to install jEnv in your development environment.
Simply clone the jEnv repository from GitHub.
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
You need Homebrew (package manager for Mac OS X).
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install jEnv using brew.
brew install jenv
Update your command line environment with jEnv specific configuration.
export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`" alias jenv_set_java_home='export JAVA_HOME="$HOME/.jenv/versions/`jenv version-name`"'
Next you'll need to add the JAVA home directory paths to your jEnv environment. To list all the JVM versions and architectures in your environment, run:
You may get an output similar to (e.g. on Mac OS X):
Matching Java Virtual Machines (3): 11.0.1, x86_64: "OpenJDK 11.0.1" /Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home 1.8.0_192, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home 1.8.0_101, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
Based on the JVM list above you may add the JAVA home directory paths to your jEnv environment, e.g.:
jenv add /Library/Java/JavaVirtualMachines/openjdk-11.0.1.jdk/Contents/Home jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home
Now your jEnv environment is ready to manage the various JVM versions in your development environment.
The aforementioned command would yield an output similar to:
system 1.8 188.8.131.52 11.0 11.0.1 openjdk64-11.0.1 oracle64-184.108.40.206
You can set specific versions of JVM per workspace directory. Assuming you have a directory with a Java code base requiring JVM 1.8, you can switch to that directory and set the JVM version of choice, e.g.:
jenv local 1.8
You may still choose a default
global version of JVM on your system, e.g.
jenv global 11
Happy Java coding!