asdf-java/README.md

107 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2019-09-10 02:30:31 +08:00
# asdf-java
[![Build status](https://github.com/halcyon/asdf-java/workflows/asdf-java%20Tests/badge.svg?branch=master)](https://github.com/halcyon/asdf-java/actions?query=workflow%3A%22asdf-java+Tests%22+branch%3Amaster) [![travis ci](https://travis-ci.org/halcyon/asdf-java.svg?branch=master)](https://travis-ci.org/halcyon/asdf-java) [![Join the chat at https://gitter.im/asdf-java/community](https://badges.gitter.im/asdf-java/community.svg)](https://gitter.im/asdf-java/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2019-09-10 07:01:17 +08:00
[Java](https://www.java.com/en/) plugin for the [asdf](https://github.com/asdf-vm/asdf) version manager.
2019-09-10 23:36:47 +08:00
## Requirements
2020-04-16 12:38:11 +08:00
- [bash v5.0](https://www.gnu.org/software/bash/)
2019-09-10 23:36:47 +08:00
- [curl](https://curl.haxx.se/)
- [sha256sum](https://www.gnu.org/software/coreutils/) (only on Linux)
- [unzip](http://infozip.sourceforge.net/UnZip.html)
- [jq](https://stedolan.github.io/jq/) (only for updating the release data)
2019-09-10 23:36:47 +08:00
## Install
```
asdf plugin-add java https://github.com/halcyon/asdf-java.git
```
## Use
Check [asdf](https://asdf-vm.github.io/asdf/) for instructions on how to install & manage versions of Java.
## Install
List candidate JDKs:
```
asdf list-all java
```
2019-09-10 23:36:47 +08:00
Install a candidate listed from the previous command like this:
```
asdf install java adoptopenjdk-11.0.16+8
```
### Setting a version
2019-09-10 23:36:47 +08:00
Select an installed candidate for use like this:
```
asdf global java adoptopenjdk-11.0.16+8
```
or just for the local directory
```
asdf local java adoptopenjdk-11.0.16+8
```
### Latest
If you just want the latest of a major version (without worrying about the patch number), install it like this:
```
asdf install java latest:adoptopenjdk-11
```
Similarly, you can set the global/local version. The latest tag will resolve to the most recent version.
Running `asdf local java latest:adoptopenjdk-11` will result in the following:
2023-10-09 00:54:25 +08:00
```shell
$ cat .tool-versions
java adoptopenjdk-11.0.16+8
```
2019-09-10 23:36:47 +08:00
## JAVA_HOME
2023-10-09 00:54:25 +08:00
To set `JAVA_HOME` in your shell's initialization add the following:
2019-09-10 23:36:47 +08:00
`. ~/.asdf/plugins/java/set-java-home.bash`
2019-10-31 22:59:40 +08:00
For zsh shell, instead use:
`. ~/.asdf/plugins/java/set-java-home.zsh`
For fish shell, instead use:
2019-10-31 22:59:40 +08:00
`. ~/.asdf/plugins/java/set-java-home.fish`
2023-10-09 00:55:15 +08:00
For nushell shell, instead use:
`source ~/.asdf/plugins/java/set-java-home.nu`
For xonsh shell, instead use:
`source ~/.asdf/plugins/java/set-java-home.xsh`
## macOS
### `JAVA_HOME` integration
Some applications in macOS use `/usr/libexec/java_home` to set java home.
2023-10-09 00:54:25 +08:00
Setting `java_macos_integration_enable` to yes on `.asdfrc` file enables this integration.
```
2023-10-09 00:54:25 +08:00
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._
### Apple Silicon 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`.