Hey everyone! I'm curious to hear about your experiences with upgrading to JDK 25. Has anyone made the jump yet? We faced some challenges moving from 11 to 17, especially with the JPMS opens, and we haven't upgraded to 21 yet. I've heard that transitioning from 17 to 21 was generally smooth. Is the transition from 21 to 25 similar? Any particular issues to watch out for? Any insights would be really helpful!
11 Answers
Upgraded from 21 to 25 with zero issues, so that was nice!
Upgrading was pretty straightforward for me! The only thing you really need to do is keep your dependencies up to date, like with asm and bytebuddy. Honestly, I don't see the point in sticking with older versions anymore. I'd recommend just rolling with the latest release every six months, it’s easier and keeps you updated with performance improvements and new features!
I’ve heard that major frameworks and libraries run more tests on LTS versions, which makes me hesitant to skip those.
I’ve noticed some significant slowness when making parallel JNI calls since the upgrade from 21 to 25. I think something changed in Java 23 that’s also affecting 25. Has anyone else run into this?
I’m having a tough time trying to update SonarQube so that it supports anything beyond Java 17—it’s slow going due to business priorities.
Honestly, it couldn’t have been easier for me! The only minor hurdle was that annotation processing is disabled by default now, which was a small pain since I use avaje a lot. I just added a flag to my build and everything was good to go.
I experienced a bit of an issue in my git pipeline where it had trouble with non-public main methods. Other than that, no significant problems.
The compiler seems a bit more finicky about unused variables. I tackled that easily with the unnamed variable "_" introduced in JEP-456. I did notice that Eclipse Tycho isn’t updated for JDK 25 yet, as Eclipse IDE itself still needs some tweaking. But it can compile for version 24 for now.
While you're at it, make sure to also update your Maven plugins in preparation for migrating to version 4!
From my experience upgrading from 17 to 25, I ran into some issues due to creating Java bytecode with ASM. I got errors because I was lazy about making stack frames all along! Also, there's a slight issue with Apache Commons where using FastDateFormat causes some stderr output, but they are working on a fix.
I had a problem with the Java 11 httpclient not liking some of the Quarkus headers. Had to switch the client to HTTP 1.1.
Pretty simple process! I just updated my Docker file and my local IDE. I haven't pushed any code specific to 25 yet, but I’m not worried about it. Coordinating the update with my team was the main thing to keep track of.
Going from 21 to 25 was smooth sailing for me—no changes required! The only note is that ZGC is now generational, but it hasn’t impacted anything on my end.
I found the transition from 17 to 23 incredibly easy, but I'm a bit stuck because my Java EE app server uses the security manager. To get past 21, I'll likely have to move to Jakarta EE, as that seems to be the only hurdle for me.
Or perhaps Quarkus might be a way out!

I get what you mean, but we're not ready to do that yet.