JDK 8 to 25 Without the Pain - Engineering a Modern Java Platform
summary
Migration from JDK 8/11 to 21–25 requires tooling and concrete fixes: run jdeps and jdeprscan across every JAR, use JNativeScan and Xlog:exceptions to find swallowed reflection and unsafe calls, and audit startup flags (obsolete GC and security manager flags cause hard failures). Expect removed subsystems (Nashorn, CORBA), JPMS split-package errors, unsafe/native access restrictions, and serialization breakage that serialver fixes. Recompilation can reorder string concat and break bytecode-manipulating libs; use OpenRewrite recipes and stage dependency upgrades toward JDK 25 as a stable target.
AI-written summary · about
chapters (8)
- 0:00JDK 8 to 25 migration intro
- 3:13Static analysis tools
- 9:54Runtime flags and JVM changes
- 13:42Breaking changes
- 25:03Silent failures
- 35:18Recompilation and serialization
- 43:03Dependency risks
- 46:56Migration checklist
related talks
43mEngineering a Modern Java Platform
44mEngineering a Modern Java Platform
53mApproaching the JDK 25 LTS release through real-world migration
49mJDK LTS Release Use Cases: When is a Java migration advisable?
50mJDK 11: Pitfalls for the Unwary
46mBeam Me Up, Java! A Journey through Java LTS Versions 11 to 21
46mJDK 9, 10 and 11: Pitfalls For The Unwary
47mJDK 9, 10, and 11: Pitfalls for the Unwary
