Installation on macOS Platforms
Oracle GraalVM is available for macOS on x64 and AArch64 architectures.
Note that on macOS the JDK installation path is: /Library/Java/JavaVirtualMachines/<graalvm>/Contents/Home.
Follow these steps to install Oracle GraalVM:
-
Navigate to Oracle Java Downloads. Select the preferred Oracle GraalVM version, 21 for the Java version, macOS for the operating system, and the architecture. Start downloading.
- Remove the quarantine attribute (required for macOS Catalina and later):
sudo xattr -r -d com.apple.quarantine graalvm-jdk-<version>_macos-<architecture>.tar.gz
- Unzip the archive:
tar -xzf graalvm-jdk-<version>_macos-<architecture>.tar.gz
Alternatively, open the file in the Finder.
- Move the downloaded package to its proper location, the /Library/Java/JavaVirtualMachines directory. Since this is a system directory,
sudo
is required: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
/usr/libexec/java_home -V
. - There can be multiple JDKs installed on the machine. The next step is to configure the runtime environment:
- Set the
JAVA_HOME
environment variable to resolve to the installation directory:export JAVA_HOME=/Library/Java/JavaVirtualMachines/<graalvm>/Contents/Home
- Set the value of the
PATH
environment variable to the GraalVM bin directory:export PATH=/Library/Java/JavaVirtualMachines/<graalvm>/Contents/Home/bin:$PATH
- Set the
- To check whether the installation was successful, run the
java -version
command.
Optionally, you can specify Oracle 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 folder.
This means that Oracle GraalVM participates in the macOS-specific /usr/libexec/java_home
mechanism. Depending on other JDK 17 installation(s) available, it is now possible that /usr/libexec/java_home -v21
returns /Library/Java/JavaVirtualMachines/<graalvm>/Contents/Home
.
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.