GraalVM Native Image
Hacker ApprovedRanked 4 of 26 compilers by recommenders
Compiles Java and JVM code into standalone binaries with fast startup and low memory use. Main caveat: long build times and library or reflection compatibility problems.
Compiles Java and JVM code into standalone binaries with fast startup and low memory use. Main caveat: long build times and library or reflection compatibility problems.
40 people gave an opinion
- recommend it
- 31
- criticize it
- 9
- approval share
- 78%
Recommended in 11 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: not recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 31 people recommend itNeeds 10 or more, met.
- 3.4 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 11 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Fast startup times
“Java native binary performance is excellent, app startup time also significantly less compared to JVM version.”
Comment from 3 Jun 2026 in “Every Byte Matters” “you can get C/Rust style startup time and less memory usage with the latter”
Comment from 30 Oct 2026 on Hacker News “startup time can be an order of magnitude or more faster in a native build”
Comment from 10 Sep 2026 in “JEP 544: Ahead-of-Time Code Compilation” - Comment from 17 May 2026 in “Zerostack – A Unix-inspired coding agent written in pure Rust”
- Comment from 31 Dec 2025 in “2026: The Year of Java in the Terminal”
Single binary, easy distribution
“This will give you what you want which is basically something you can wget and chmod +x.”
Comment from 31 Dec 2025 in “2026: The Year of Java in the Terminal” “But then it distributes as one binary and starts in milliseconds.”
Comment from 17 May 2026 in “Zerostack – A Unix-inspired coding agent written in pure Rust” “You can have a <20MiB Graal-compiled binary for a Java project”
Comment from 18 Mar 2026 in “Java 26 is here, and with it a solid foundation for the future” - Comment from 10 Sep 2026 in “JEP 544: Ahead-of-Time Code Compilation”
Mature and improved developer experience
“Native images shouldn't be too messy anymore, Oracle put a lot of effort into DX improvements”
Comment from 29 Oct 2026 in “Java's new AOT cache feature is in a rough state” “GraalVM native-image have eliminated most of the old excuses”
Comment from 31 Dec 2025 in “2026: The Year of Java in the Terminal” “So it's mostly plug-n-play but with some caveats”
Comment from 8 Apr 2026 in “GraalVM and Java and Native Images, compile Java to standalone executables” - Comment from 10 Jun 2026 in “Port React Compiler to Rust”
Suits non-server and constrained environments
“first thing I'd evaluate if thought about non-server side, performant Java application”
Comment from 17 May 2026 in “Zerostack – A Unix-inspired coding agent written in pure Rust” “For constrained environments, GraalVM offers native image.”
Comment from 11 Sep 2026 in “Rust is tier-1 language at Microsoft”
What people warn about
Each mark is one comment
Long build times
“Build times definitely leave to be desired, not all 3rd party libraries can easily be used”
Comment from 20 Nov 2025 in “Implementation of a Java Processor on a FPGA (2016)” “The downside is long compile times (2 minutes for a simple CLI tool that uses AWS SDK).”
Comment from 28 May 2026 in “Ruby vs. Java vs. TypeScript: my experience on building a Cowork DOCX plugin” “build times are super slow, use too many resources, and it’s non-trivial to get working”
Comment from 31 Dec 2025 in “2026: The Year of Java in the Terminal” - Comment from 31 Dec 2025 in “2026: The Year of Java in the Terminal”
Some libraries and frameworks break
“Build times definitely leave to be desired, not all 3rd party libraries can easily be used”
Comment from 20 Nov 2025 in “Implementation of a Java Processor on a FPGA (2016)” “then half your favorite frameworks breaks and you trade one set of hoops for another”
Comment from 20 Mar 2026 in “Java Is Fast. Your Code Might Not Be” “GraalVM has a lot of limitations, some popular lib don't work with it.”
Comment from 20 Mar 2026 in “Java Is Fast. Your Code Might Not Be” - Comment from 29 Oct 2026 in “Java's new AOT cache feature is in a rough state”
Reflection and class setup needed
“it does limit you a little b/c with Graal native you need to tell the compiler if you will dynamically use a type/class”
Comment from 4 Apr 2026 in “GraalVM and Java and Native Images, compile Java to standalone executables” “compiling Java applications ahead of time is complicated by runtime class initialization, reflection etc.”
Comment from 31 Dec 2025 in “2026: The Year of Java in the Terminal” “With Graal Native, you'll have to go through using the tracing agent”
Comment from 18 Mar 2026 in “Java 26 is here, and with it a solid foundation for the future”
Other compilers people recommend
The four most recommended other compilers, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| GCC | 138 | 123 | 53% | 12 | 15 yrs9 owners | — |
| Clang | 74 | 50 | 60% | 12 | — | — |
| Free Pascal compiler | 38 | 7 | 84% | 11 | — | Approved |
| GraalVM Native ImageThis page | 31 | 9 | 78% | 11 | — | Approved |
| .NET Native AOT | 26 | 13 | 67% | 10 | — | Approved |
What people said
40 of the 48 comments that mention it, newest first. Each links to the original comment.
“you can get C/Rust style startup time and less memory usage with the latter”
“Native images shouldn't be too messy anymore, Oracle put a lot of effort into DX improvements”
“all of them super messy to get to work with a normal JVM webapp”
“GraalVM native-image comes with its own set of trade-offs since it's based on a closed-world assumption”
“the binaries were quite big (not a showstopper though) and the class-loading issues were kind of a PITA”
“For constrained environments, GraalVM offers native image.”
“startup time can be an order of magnitude or more faster in a native build”
“The slight drawback is that AOT compiled Java code's performance isn't as good as the JIT compiled form running on the JVM.”
“already let's do AOT compilation suitable for distribution”
“even compared to GraalVM Native Image”
“it's a major pain to make even simple existing applications run flawlessly natively”
“AOT Java on Graal is quite mature at this point”
“Java native binary performance is excellent, app startup time also significantly less compared to JVM version.”
“The downside is long compile times (2 minutes for a simple CLI tool that uses AWS SDK).”
“If you don't like JIT/JVM there's GraalVM Native Image.”
“But then it distributes as one binary and starts in milliseconds.”
“first thing I'd evaluate if thought about non-server side, performant Java application”
“Java/Kotlin/Scala have GraalVM native-image”
“So it's mostly plug-n-play but with some caveats”
“it does limit you a little b/c with Graal native you need to tell the compiler if you will dynamically use a type/class”
“then half your favorite frameworks breaks and you trade one set of hoops for another”
“GraalVM has a lot of limitations, some popular lib don't work with it.”
“in part due to the push for Graal native image”
“You can have a <20MiB Graal-compiled binary for a Java project”
“With Graal Native, you'll have to go through using the tracing agent”
“I remain convinced that Graal is deep magic.”
“GraalVM Native Image did the heavy lifting”
“Native Image can make macOS binaries just fine”
“where they could have just used GraalVM Native Image”
“in practice I don't see this as a problem as it does not affect the end user”
“GraalVM native image allows doing exactly that.”
“fast enough you can launch it during tab completions”
“compiling Java applications ahead of time is complicated by runtime class initialization, reflection etc.”
“GraalVM native-image have eliminated most of the old excuses”
“Every time I've tried to get native-image working with anything more than a basic Swing app it has been absolute hell.”
“It is not trivial to use, the compile times are extremely long”
“This will give you what you want which is basically something you can wget and chmod +x.”
“build times are super slow, use too many resources, and it’s non-trivial to get working”
“One of the neatest things I've been able to do is compile a .dll library "plugin" for an application”
“Build times definitely leave to be desired, not all 3rd party libraries can easily be used”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.