Warning The GraalVM JDK Downloader is no longer maintained. Please consider using script-friendly URLs or SDKMAN! to download GraalVM. For all download options, visit: https://graalvm.org/downloads.
This repository is used to maintain and host the GraalVM JDK Downloader at https://get.graalvm.org/.
The GraalVM JDK Downloader
- supports Oracle GraalVM, GraalVM Community Edition (CE), and GraalVM Enterprise Edition (EE). (EE requires a token, for more information see Set Up a Download Token for GraalVM Enterprise Installations.)
- supports Linux, macOS, and Windows (via Git Bash, Cygwin, or Windows Subsystem for Linux)
- is non-interactive and designed to be used in automated build pipelines or on developer machines
- sets up GraalVM installations in the current working directory (can be changed using the
--to
option) - verifies checksums of downloaded artifacts before extracting if either
sha256sum
orshasum
is available - only requires
bash
,curl
, and eithertar
(Linux/macOS) orunzip
(Windows)
# Download the latest GraalVM JDK (defaults to the latest release of the JDK and, if a token is found, to EE)
$ bash <(curl -sL https://get.graalvm.org/jdk)
# Download a specific GraalVM JDK
$ bash <(curl -sL https://get.graalvm.org/jdk) graalvm-jdk-20.0.2 # Oracle GraalVM for JDK 20
$ bash <(curl -sL https://get.graalvm.org/jdk) graalvm-community-jdk-17.0.7 # GraalVM Community Edition for JDK 17
$ bash <(curl -sL https://get.graalvm.org/jdk) graalvm-ce-java17-22.3.1 # GraalVM Community Edition 22.3.X and earlier
$ bash <(curl -sL https://get.graalvm.org/jdk) graalvm-ee-java17-22.3.1 # GraalVM Enterprise Edition 22.3.X and earlier
# Download a specific GraalVM JDK to a specific directory
$ bash <(curl -sL https://get.graalvm.org/jdk) --to "$HOME" graalvm-jdk-20.0.2
# Download a specific GraalVM JDK and install the Python and Node.js runtimes
$ bash <(curl -sL https://get.graalvm.org/jdk) -c python,nodejs graalvm-jdk-20.0.2
$ bash <(curl -sL https://get.graalvm.org/jdk) --help
GraalVM JDK Downloader v1.1.0
Usage:
bash <(curl -sL https://get.graalvm.org/jdk) [opts] [graalvm-community-jdk-20.0.2]
Options:
-c | --components Comma-separated list of GraalVM components (for example,
'-c python,nodejs').
-d | --debug Enable debug mode.
-h | --help Show this help text.
--no-progress Disable progress printing.
--to Existing path to where artifacts will be downloaded (for example,
'--to "$HOME"'; current directory is the default).
Visit https://github.com/graalvm/graalvm-jdk-downloader for more information.
A valid download token is required for GraalVM Enterprise Edition installations.
To generate a download token, run the following command in a shell.
Note that, unlike the GraalVM JDK Downloader, this command is interactive and should not be executed as part of an automated build pipeline.
The command will help you store the generated token in the $HOME/.gu/config
file.
Alternatively, you can also store the token in the $GRAAL_EE_DOWNLOAD_TOKEN
environment variable.
Download tokens are associated with an email account, so treat them as confidential and encrypt them. (GitHub Actions, for example, supports encrypted secrets.)
$ bash <(curl -sL https://get.graalvm.org/ee-token)
Use the --revoke
option to revoke download tokens:
# Revoke a persisted token
$ bash <(curl -sL https://get.graalvm.org/ee-token) --revoke
# Revoke a specific token
$ bash <(curl -sL https://get.graalvm.org/ee-token) --revoke mytoken
# Revoke all tokens for an email address
$ bash <(curl -sL https://get.graalvm.org/ee-token) --revoke [email protected]
We welcome code contributions. To get started, sign the Oracle Contributor Agreement (OCA).
We only accept pull requests from committers that can be verified as having signed the OCA.