- Latest (GraalVM for JDK 21)
- Dev Build
- GraalVM for JDK 21
- GraalVM for JDK 20
- GraalVM for JDK 17
- GraalVM 22.3
- GraalVM 22.2
- GraalVM 22.1
- GraalVM 22.0
- GraalVM 21.3
Installation on macOS Platforms #
GraalVM is available for macOS on x64 and AArch64 architectures.
Note that on macOS the JDK installation path is: _/Library/Java/JavaVirtualMachines/
Follow these steps to install GraalVM:
Navigate to the GraalVM Downloads page. Select 21 for the Java version, macOS for the operating system, x64 or aarch64 for the architecture, and download.
- Unzip the archive.
tar -xzf graalvm-jdk-<version>_macos-<architecture>.tar.gz
Alternatively, open the file in Finder.
Note: If you are using macOS Catalina and later you may need to remove the quarantine attribute:
sudo xattr -r -d com.apple.quarantine /path/to/graalvm
- Move the downloaded package to its proper location, the
/Library/Java/JavaVirtualMachinesdirectory. Since this is a system directory,
sudo mv graalvm-jdk-<version>_macos-<architecture> /Library/Java/JavaVirtualMachines
To verify if the move is successful and to get a list of all installed JDKs, run
- There can be multiple JDKs installed on the machine. The next step is to configure the runtime environment:
- Set the
JAVA_HOMEenvironment variable to resolve to the GraalVM installation directory:
- Set the value of the
PATHenvironment variable to the GraalVM bin directory:
- Set the
- To check whether the installation was successful, run the
Optionally, you can specify GraalVM as the default JRE or JDK installation in your Java IDE.
Installation Notes #
On JAVA_HOME Command #
The information property file, Info.plist, is in the top level Contents directory.
This means that GraalVM participates in the macOS-specific
/usr/libexec/java_home mechanism. Depending on other JDK installation(s) available, it is now possible that
/usr/libexec/java_home -v21 returns
You can run
/usr/libexec/java_home -v21 -V to see the complete list of JVMs available to the
java_home command. This command sorts the JVMs in decreasing version order and chooses the top one as the default for the specified version.
Within a specific version, the sort order appears to be stable but is unspecified.