Replacement for my old gist.
Downloads JDKs from AdoptOpenJDK into <cache dir>/jpre/jdks
, then sets a symlink to the currently active JDK.
The symlinks are per-TTY (which usually implies per-shell), and stored in the Rust-std-determined temporary folder,
which is usually $TMPDIR
or /tmp
.
Run cargo install jpre
to get the jpre
binary, and set your JAVA_HOME
to $(jpre java-home)
.
For most people adding this is enough: ```sh
export JAVA_HOME="$(jpre java-home)"
export PATH="$JAVA_HOME/bin:$PATH"
java
et. alhash -r ```
Note that if you do not set a default JDK, the symlinked path will lead nowhere!
Run jpre use 11
, this downloads JDK 11 from AdoptOpenJDK and makes it the active JDK.
Other major versions can be downloaded and configured using jpre use <major>
.
The default JDK can be set using jpre default <major>
.
Full details are available by running jpre help
.
Since this is per-TTY, closing and re-opening a terminal tab / window may result in a different JDK than the default, due to TTY reuse.