Table of Contents

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//Contents/Home_.

Follow these steps to install GraalVM:

  1. Navigate to the GraalVM Downloads page. Select 17 or 20 for the Java version, macOS for the operating system, x64 or aarch64 for the architecture, and download.

  2. 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
    
  3. 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.

  4. There can be multiple JDKs installed on the machine. The next step is to configure the runtime environment:
    • 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 JAVA_HOME environment variable to resolve to the GraalVM installation directory:
       export JAVA_HOME=/Library/Java/JavaVirtualMachines/<graalvm>/Contents/Home
      
  5. To check whether the installation was successful, run the java -version command.

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 folder. 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 -v17 returns /Library/Java/JavaVirtualMachines/<graalvm>/Contents/Home. You can run /usr/libexec/java_home -v17 -V to see the complete list of JDK 17 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.