# Install openj9 with Homebrew

High performance, scalable, Java virtual machine. Version 0.59.0 via Homebrew; verified 2026-06-25.

## Install

```sh
sudo av install brew:openj9
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install openj9
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:openj9
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/openj9>
- **Version:** 0.59.0
- **Source summary:** High performance, scalable, Java virtual machine
- **Homepage:** <https://www.eclipse.org/openj9/>
- **Repository:** <https://github.com/eclipse-openj9/openj9>
- **Upstream docs:** <https://eclipse.dev/openj9/docs>
- **License:** EPL-2.0 OR Apache-2.0 OR (GPL-2.0-only WITH Classpath-exception-2.0) OR (GPL-2.0-only WITH OpenJDK-assembly-exception-1.0)
- **Source archive:** <https://github.com/eclipse-openj9/openj9/archive/refs/tags/openj9-0.59.0.tar.gz>
- **Last updated:** 2026-06-25T13:37:59+02:00
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- jdmpview (cli)
- jitserver (cli)
- jpackcore (cli)
- jrunscript (cli)
- traceformat (cli)
- jdmpview (alias)
- jitserver (alias)
- jpackcore (alias)
- jrunscript (alias)
- traceformat (alias)

## Dependencies

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

## Build dependencies

- autoconf
- bash
- cmake
- openjdk@25
- pkgconf

## Uses from macOS

- libffi

## Install behavior

- Post-install hook: not defined
- Caveats: This formula provides the latest supported LTS JDK. If you need a specific version, then you will have to use a different method to install OpenJ9. For the system Java wrappers to find this JDK, symlink it with sudo ln -sfn $HOMEBREW_PREFIX/opt/openj9/libexec/openj9.jdk /Library/Java/JavaVirtualMachines/openj9.jdk
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.59.0
- Package-manager updated: 2026-06-25
- Local data: ok
- Upstream repository: https://github.com/eclipse-openj9/openj9
- Upstream latest detected: openj9-0.59.0 (current)
## Project history and usage

Eclipse OpenJ9 is an independent Java Virtual Machine implementation used with OpenJDK class libraries to build a complete JDK. It competes with HotSpot by emphasizing startup, footprint, reliability, throughput, cloud deployment, diagnostics, and JVM implementation diversity.

### Project history

OpenJ9 descends from IBM's J9 JVM, which IBM used in production Java runtimes before contributing it to the Eclipse Foundation. The Eclipse project says OpenJ9 represents hundreds of person-years of effort and underpins IBM SDK, Java Technology Edition, a component of many IBM enterprise products.

IBM completed open sourcing J9 as Eclipse OpenJ9 in September 2017. The OpenJ9 repository states that significant parts of the code are also open source through Eclipse OMR, the reusable runtime-component project that shares technology below language-specific virtual machines.

### Adoption history

OpenJ9's adoption story is unusual because the implementation had enterprise production history before its Eclipse-era open-source life. Its public positioning is not as a replacement for Java SE itself, but as a JVM that combines with OpenJDK class libraries to produce JDK builds tuned for smaller memory footprint, startup behavior, and cloud deployments.

The project also matters because the Java ecosystem benefits from multiple JVM implementations. The OpenJ9 README explicitly frames that competition as a source of runtime innovation in compressed references, cloud features, ahead-of-time compilation, performance, and lower memory use.

### How it is used

Users choose an OpenJ9-based JDK when they want a Java runtime with different startup, memory, JIT, diagnostics, class-sharing, and cloud-oriented tuning behavior than HotSpot. The documentation exposes a large set of OpenJ9-specific runtime options, garbage-collection policies, class data sharing, JITServer, AOT compiler support, CRIU support, and diagnostic tools.

The Homebrew formula is keg-only and tells macOS users to symlink its JDK bundle into /Library/Java/JavaVirtualMachines when they want system Java wrappers to discover it, which reflects the usual JDK packaging friction: multiple Java runtimes can be installed side by side but must be selected deliberately.

### Why package nerds care

OpenJ9 is package-nerd catnip because it separates the JDK into pieces packagers often blur together: OpenJDK class libraries, a non-HotSpot JVM, Eclipse OMR runtime components, Java compatibility constraints, and platform-specific JDK bundle registration. A package named openj9 is not just another Java version; it is a different VM lineage.

### Timeline

- 2017: IBM contributed the J9 VM to the Eclipse Foundation as the Eclipse OpenJ9 open-source project.
- 2017: IBM SDK, Java Technology Edition version 8 incorporated the Eclipse OpenJ9 VM beginning with service refresh 5.
- Homebrew packages OpenJ9 as a keg-only JDK and describes it as providing a supported LTS JDK rather than an arbitrary Java version selector.

### Related projects

- OpenJ9 is closely related to OpenJDK, Eclipse OMR, IBM SDK Java Technology Edition, Eclipse Adoptium builds, and the HotSpot JVM that ships in the main OpenJDK reference implementation.

### Sources

- <https://eclipse.dev/openj9/>
- <https://eclipse.dev/openj9/docs/introduction/>
- <https://formulae.brew.sh/formula/openj9>
- <https://github.com/eclipse-openj9/openj9>
- <https://www.ibm.com/docs/en/sdk-java-technology/8?topic=openj9-user-documentation>


## Security Notes

broad file, network, media, or database tool signal. generalized runtime or code generation signal.

- **Geiger risk:** orange / medium
- broad file, network, media, or database tool signal
- generalized runtime or code generation signal
- infrastructure mutation or orchestration signal

## Source Database Details

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


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line 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.
- [bash](https://www.automicvault.com/pkg/brew/bash/) - Build dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - 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, language-runtime, openjdk, runtime.
- [gosu](https://www.automicvault.com/pkg/brew/gosu/) - Shares av.db curated category or tags: cli, java, jvm, language-runtime.
- [jruby](https://www.automicvault.com/pkg/brew/jruby/) - Shares av.db curated category or tags: cli, java, jvm, language-runtime.
- [graalvm](https://www.automicvault.com/pkg/brew/graalvm/) - Shares av.db curated category or tags: cli, java, language-runtime, virtual-machine.
- [kawa](https://www.automicvault.com/pkg/brew/kawa/) - Shares av.db curated category or tags: cli, jvm, language-runtime.
- [bigloo](https://www.automicvault.com/pkg/brew/bigloo/) - Shares av.db curated category or tags: cli, jvm, language-runtime, runtime.
- [groovy](https://www.automicvault.com/pkg/brew/groovy/) - Shares av.db curated category or tags: cli, java, jvm, language-runtime.
- [groovysdk](https://www.automicvault.com/pkg/brew/groovysdk/) - Shares av.db curated category or tags: cli, java, jvm, language-runtime.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- cross-ecosystem install command graph
