Java plugin for the asdf version manager.
asdf plugin-add java https://github.com/halcyon/asdf-java.git
Check asdf for instructions on how to install & manage versions of Java.
List candidate JDKs:
asdf list-all java
Install a candidate listed from the previous command like this:
asdf install java adopt-openjdk-12.0.2+10.2
Select an installed candidate for use like this:
asdf global java adopt-openjdk-12.0.2+10.2
To set JAVA_HOME in your shell's initialization add the following:
. ~/.asdf/plugins/java/set-java-home.bash
For zsh shell, instead use:
. ~/.asdf/plugins/java/set-java-home.zsh
For fish shell, instead use:
. ~/.asdf/plugins/java/set-java-home.fish
For xonsh shell, instead use:
source ~/.asdf/plugins/java/set-java-home.xsh
Some applications in macOS use /usr/libexec/java_home
to set java home.
Setting java_macos_integration_enable to yes on .asdfrc
file enables this integration.
java_macos_integration_enable = yes
Note: Not all distributions of Java JDK packages offer this integration (e.g. liberica). This option only works for packages that do offer that integration.
If you have an Apple Silicon mac, then you can choose to run either an arm64
JVM natively, or an x86_64
JVM under Rosetta translation. If you run the command arch
, it will print either arm64
(which means you are running natively) or x86_64
(which means you are running under Rosetta translation).
When you run asdf list all java
, it lists only the VMs which are available for the architecture you are currently running under. To switch your terminal from native ARM to Rosetta use arch -x86_64 /bin/zsh
.