Eclipse OpenJ9
Eclipse Incubation

Boost your Java™ application performance

Low memory footprint
Fast startup time
High application throughput
Smoother ramp-up in the cloud

Show me the data!

Want an OpenJDK™ build that contains an enterprise grade, open source, Java virtual machine?
Grab a pre-built binary for Linux, Windows, or macOS and try it for yourself...

Download Now

Give your Java application a thrill
Run it on OpenJDK with Eclipse OpenJ9

Learn more

Eclipse OpenJ9 is a high performance, scalable, Java virtual machine (JVM) implementation that represents hundreds of person-years of effort. Contributed to the Eclipse project by IBM, the OpenJ9 JVM underpins the IBM SDK, Java Technology Edition product that is a core component of many IBM Enterprise software products. Continued development of OpenJ9 at the Eclipse foundation ensures wider collaboration, fresh innovation, and the opportunity to influence the development of OpenJ9 for the next generation of Java applications.

Saving costs in the cloud

OpenJ9 is highly optimized for cloud workloads. The memory footprint is around half the size of other JVM implementations.

Whether you are a cloud user or a cloud provider, a smaller footprint generates immediate cost savings when running applications on most cloud services. You can also take advantage of a tuning mechanism that detects when the JVM is idle, releasing free memory pages to keep the footprint as small as possible and keep your running costs to a minimum.

If resources become constrained, OpenJ9 provides a dedicated running mode, -Xtune:virtualized, that reduces CPU consumption and memory footprint. This is useful for scenarios where cloud services become highly overcommitted at peak times.

Better performance

Benchmark tests demonstrate performance improvements over alternative JVM implementations, including faster start up times and comparable application throughput.

Shared classes and Ahead-of-Time (AOT) technologies typically provide a 20-40% reduction in startup time while improving the overall ramp-up time of applications. This capability is crucial for short-running Java applications or for horizontal scalability solutions that rely on the frequent provisioning and de-provisioning of JVM instances to manage workloads.

OpenJ9 has also been built to exploit hardware features, such as graphics processing units (GPU) that can improve the performance of Java applications for different workloads.

As a developer you can achieve even faster startup times by using -Xquickstart mode, which enables rapid development → deployment → test cycles to improve productivity.


Get started

It's easy to get started with Eclipse OpenJ9!

Try it out Grab a pre-built OpenJDK binary from AdoptOpenJDK to install on your system, and see how your applications perform when the OpenJ9 JVM is at work.

Build your own If you are familiar with building OpenJDK, you might want to build it with OpenJ9 yourself. For a deeper dive, read the build instructions, which cover all the steps to build an OpenJDK with OpenJ9 and how to test your binary.

Tune it OpenJ9 optimizes your Java application out-of-the-box without needing a complicated set of command line options. However, further tuning is possible to improve your application's performance. For example, if your application has an extremely large heap, you might choose a different garbage collection policy to improve memory management. Alternatively, you might want to exploit specific hardware features such as a graphics processing unit (GPU). To learn more about tuning OpenJ9 for your application runtime environment, read the docs.

Ask questions If you get stuck trying to do something, join our Slack workspace where you can get some help from the community. Our developers also monitor #OpenJ9 questions on Stack Overflow. For very general questions about OpenJ9, what we support, and how it fits into the OpenJDK ecosystem, we've created an FAQ.

Report issues We hope you don't run into any obstacles, but if you do, we want to hear from you. Use the #OpenJ9 tag to discuss problems in Stack Overflow, or raise an issue in our GitHub repository.

Get involved

The Eclipse OpenJ9 project welcomes participation at many levels.

Make suggestions If you are using OpenJ9 within a Java runtime environment and you have ideas for improvements, share them in our slack workspace (Request an invite). We'd love to hear from you.

Contribute If you are interested in contributing to the development of this open-source project, check out the contribution guide in our GitHub repository. If you want to find out more about how we work, why not come along to one of our community calls. You can also find out more about the project, including release plans, at our Eclipse Foundation project page.