GraalVM
Announcement
Announcing GraalVM for JDK 23! 🚀
New features, smaller executables, new garbage collection options, and GraalPy and GraalWasm now ready for production!
Features
Low Resource Usage
Native executables use only a fraction of memory and CPU resources required by a JVM, which improves utilization and reduces costs.
Improved Security
Native executables contain only the classes, methods, and fields that your application needs, which reduces attack surface area.
Fast Startup
Native executables compiled ahead of time start up instantly and require no warmup to run at peak performance.
Compact Packaging
Native executables are small and offer a range of linking options that make them easy to deploy in minimal container images.
Supported by Frameworks
Popular frameworks such as Spring Boot, Micronaut, Helidon, and Quarkus provide first-class support for GraalVM.
Supported by Leading Cloud Platforms
SDKs from leading cloud platforms such as AWS, Microsoft Azure, GCP, and Oracle Cloud Infrastructure integrate and support GraalVM.
Native Image
Write efficient, more secure, and highly-scalable cloud native Java applications.
Using GraalVM
Develop
IDE and Java Tool Support
Use your favorite Java IDE and development tools, and then compile your application ahead-of-time into an executable with GraalVM Native Image. It's just a seamless extra step in your development process.
Maven and Gradle Plugins
The Native Build Tools provide Maven and Gradle plugins that make it easy to compile your applications ahead-of-time as part of your build process.
Test
Debug
Native Debugging with GDB
Set breakpoints, step through Java sources line-by-line, and inspect variables in a native executable with GDB and in supported IDEs.
Package & Deploy
Small and Efficient Containers
Native executables are ideal for use with light-weight container images that minimize attack surface area to improve security. A statically-linked native executable can even run in a scratch container image!
Monitor
Support for JFR, JMX, and more
Monitor native executables with the same tools you use for applications deployed on the JVM. Native executables can optionally include support for JFR, JMX, heap dumps, jvmstat, and more.
More GraalVM Technologies
Graal JIT Compiler