# Install graalvm with Homebrew, chocolatey

JDK distribution with Graal compiler and Native Image. Version 25.1.3 via Homebrew; verified 2026-07-05.

## Install

```sh
sudo av install brew:graalvm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install graalvm
```

  Evidence: local Homebrew formula metadata

### Windows

- Chocolatey (92%):

```sh
choco install graalvm
```

  Evidence: Chocolatey community package catalog: graalvm from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='7.756','razer-synapse-3'

## Package facts

- **Package key:** brew:graalvm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/graalvm>
- **Version:** 25.1.3
- **Source summary:** JDK distribution with Graal compiler and Native Image
- **Homepage:** <https://www.graalvm.org/>
- **Repository:** <https://github.com/oracle/graal>
- **Upstream docs:** <https://www.graalvm.org/latest/docs>
- **License:** GPL-2.0-only WITH Classpath-exception-2.0
- **Source archive:** <https://github.com/oracle/graal/archive/refs/tags/graal-25.1.3.tar.gz>
- **Last updated:** 2026-07-05T23:51:35Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- native-image (cli)
- native-image-configure (cli)
- native-image (alias)
- native-image-configure (alias)

## Dependencies

- freetype
- giflib
- harfbuzz
- jpeg-turbo
- libpng
- little-cms2

## Build dependencies

- autoconf
- mx
- ninja
- openjdk@25
- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 25.1.3
- Package-manager updated: 2026-07-05
- Local data: ok
- Upstream repository: https://github.com/oracle/graal
- info: No cached GitHub release or tag data was available.
## Project history and usage

GraalVM is Oracle Labs' high-performance JDK and language-runtime project built around the Graal compiler, the Truffle language implementation framework, and Native Image ahead-of-time compilation. In package-manager terms it is a JDK distribution with extra runtime and native-compilation tooling, so installing it is closer to selecting a Java toolchain than installing a single application.

The Homebrew package is significant because it gives macOS and Unix-like developers a normal package-manager route to `native-image` and the GraalVM JDK. That matters for build scripts, CI jobs, Java microservices, and framework ecosystems that test against or produce GraalVM Native Image binaries.

### Project history

Oracle Labs describes GraalVM as a runtime for Java and JVM languages, JavaScript, Python, WebAssembly, and other languages that can run standalone or embedded in OpenJDK, Oracle JDK, Oracle Database, and MySQL. The project grew from Oracle Labs compiler and VM research led around the Graal dynamic compiler and the Truffle self-optimizing runtime system.

GraalVM's public pre-production line used 1.0 release candidates in 2018. Those releases show the package becoming more than a compiler experiment: artifacts moved toward the `org.graalvm` coordinates, Native Image pieces were published to Maven Central, and the distribution carried language runtimes, SDK APIs, tools, and the Substrate VM implementation behind Native Image.

The source repository `oracle/graal` brings together the compiler, SDK, SubstrateVM, Truffle, language runtimes and related tools. That monorepo shape is part of the project's identity: GraalVM is not only a JDK build, but also a platform for language implementers and ahead-of-time compilation research.

### Adoption history

GraalVM adoption in the Java ecosystem has been tied to two overlapping use cases: using the Graal compiler as an optimizing JIT, and using Native Image to build standalone executables with fast startup and lower resource use. The latter became especially visible in cloud-native Java, where container startup time and memory footprint are package-level concerns.

Oracle's 2023 licensing change made Oracle GraalVM for JDK 17, JDK 20, and following releases available under the GraalVM Free Terms and Conditions, including commercial production use subject to the license terms. That reduced a practical adoption barrier for teams that needed Oracle-provided builds rather than only community builds.

Oracle later described a shift in Java-runtime strategy: GraalVM technologies were aligned with the Java release cadence after years of research, the Graal JIT informed Oracle JDK work, and Native Image work informed OpenJDK Project Leyden. For package users, that means GraalVM sits at the intersection of a shipping JDK distribution and upstream Java platform experiments.

### How it is used

Developers use GraalVM as a Java Development Kit in IDEs and build tools, then opt into Native Image through the `native-image` command or build plugins. The Native Image docs describe compiling Java code ahead of time into a native executable that includes only reachable application, library, runtime, and statically linked JDK code for a target operating system and architecture.

Typical command-line and package-manager usage revolves around setting `JAVA_HOME`, ensuring a local C toolchain is available, and running Maven or Gradle Native Image plugins. The Homebrew package exposes the JDK and tools such as `native-image` and `native-image-configure`, making it convenient for repeatable local builds.

The package also has a metadata angle: Native Image needs reachability metadata for dynamic Java features such as reflection, resources, and service loading. The curated path `META-INF/native-image/<groupId>/<artifactId>/reachability-metadata.json` reflects that package-ecosystem convention.

### Why package nerds care

GraalVM is package-nerd bait because it blurs boundaries between compiler, JDK, language runtime, and build artifact. Installing it can change Java bytecode execution, native executable generation, container image size, startup behavior, and dependency metadata requirements.

Its release and licensing history also affects distribution policy. Packagers need to distinguish GraalVM Community Edition licensing from Oracle GraalVM licensing, match builds to JDK baselines, and expose tooling in a way that works with `JAVA_HOME`, Gradle, Maven, CI runners, and architecture-specific native toolchains.

For Homebrew users, `brew install graalvm` is a practical way to obtain a specialized Java toolchain while keeping the installation visible to scripts and package-manager audits.

### Timeline

- 2018: GraalVM 1.0 release candidates documented polyglot runtimes, Maven artifacts, Native Image work, and SDK/API changes.
- 2018-10: GraalVM 1.0-RC8 documented Native Image Maven integration and Maven Central publication of Substrate VM components.
- 2019: GraalVM moved from the 1.0 release-candidate era into production-oriented release lines.
- 2022: Oracle Labs announced alignment of GraalVM technology development with Java release cadence.
- 2023: Oracle announced the GraalVM Free Terms and Conditions for Oracle GraalVM releases beginning with JDK 17 and JDK 20.
- 2026: GraalVM release-calendar documentation describes monthly feature releases from the 25.1 line with quarterly CPU updates.

### Related projects

- OpenJDK is the Java platform baseline that GraalVM builds on and tracks.
- Truffle is the language implementation framework used by GraalVM language runtimes.
- SubstrateVM is the Native Image implementation area in the Graal repository.
- GraalJS, GraalPy, GraalWasm, Espresso, Sulong, Native Build Tools, and the GraalVM reachability metadata repository are adjacent GraalVM ecosystem projects.
- Project Leyden is related through ahead-of-time Java work that Oracle says was informed by Native Image.

### Sources

- <https://blogs.oracle.com/cloud-infrastructure/graalvm-free-license>
- <https://blogs.oracle.com/java/detaching-graalvm-from-the-java-ecosystem-train>
- <https://github.com/oracle/graal>
- <https://labs.oracle.com/pls/apex/f?p=94065:12:14871764882481:47>
- <https://raw.githubusercontent.com/oracle/graal/master/README.md>
- <https://www.graalvm.org/latest/reference-manual/native-image/>
- <https://www.graalvm.org/release-calendar/>
- <https://www.graalvm.org/release-notes/release-candidates/>


## Security Notes

No matching local secret-handling manifest was found for graalvm. Nucleus package metadata is still published here so future coverage has a stable package URL.



## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: META-INF/native-image/<groupId>/<artifactId>/reachability-metadata.json
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** graalvm
- **Version Scheme:** 0
- **Revision:** 0
- **Requirements:** arch, xcode
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** yes
- **URL Keys:** stable

## Other Package-Manager Records

- Chocolatey - graalvm: normalized package name match | Chocolatey community package catalog: graalvm from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='7.756','razer-synapse-3'


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [freetype](https://www.automicvault.com/pkg/brew/freetype/) - Runtime dependency declared by Homebrew.
- [giflib](https://www.automicvault.com/pkg/brew/giflib/) - Runtime dependency declared by Homebrew.
- [harfbuzz](https://www.automicvault.com/pkg/brew/harfbuzz/) - Runtime dependency declared by Homebrew.
- [jpeg-turbo](https://www.automicvault.com/pkg/brew/jpeg-turbo/) - Runtime dependency declared by Homebrew.
- [libpng](https://www.automicvault.com/pkg/brew/libpng/) - Runtime dependency declared by Homebrew.
- [little-cms2](https://www.automicvault.com/pkg/brew/little-cms2/) - Runtime dependency declared by Homebrew.
- [autoconf](https://www.automicvault.com/pkg/brew/autoconf/) - Build dependency declared by Homebrew.
- [mx](https://www.automicvault.com/pkg/brew/mx/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [openjdk@25](https://www.automicvault.com/pkg/brew/openjdk-25/) - Build dependency declared by Homebrew.
- [openjdk](https://www.automicvault.com/pkg/brew/openjdk/) - Shares av.db curated category or tags: cli, java, jdk, language-runtime.
- [openj9](https://www.automicvault.com/pkg/brew/openj9/) - Shares av.db curated category or tags: cli, java, language-runtime, virtual-machine.
- [dartaotruntime](https://www.automicvault.com/pkg/brew/dartaotruntime/) - Shares av.db curated category or tags: aot, cli, language-runtime.
- [gosu](https://www.automicvault.com/pkg/brew/gosu/) - Shares av.db curated category or tags: cli, java, language-runtime.
- [groovy](https://www.automicvault.com/pkg/brew/groovy/) - Shares av.db curated category or tags: cli, java, language-runtime.
- [groovysdk](https://www.automicvault.com/pkg/brew/groovysdk/) - Shares av.db curated category or tags: cli, java, language-runtime.
- [jolie](https://www.automicvault.com/pkg/brew/jolie/) - Shares av.db curated category or tags: cli, java, language-runtime.
- [jruby](https://www.automicvault.com/pkg/brew/jruby/) - Shares av.db curated category or tags: cli, java, language-runtime.
- [halide](https://www.automicvault.com/pkg/brew/halide/) - Both packages work with overlapping file formats or content types. Shared terms: cli, compiler, image, jpeg, jpeg-turbo.

## Combined YAML source

View the package source record on GitHub. [combined/graalvm.yml](https://github.com/automic-vault/db/blob/main/combined/graalvm.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
