Preparing for JDK 9 - AKA The Sharp Edges of JDK 9
summary
JDK 9 hides most internal APIs and intends to remove deprecated APIs (some marked for removal=true), so many real-world apps and libraries break until updated; use the jdeps tool and the newer jdeps-scan to find internal usages and deprecated-for-removal symbols. Modularity (Jigsaw) forces add-exports or modular rework or move-to-release JARs; command-line add-exports flags are a temporary fix. Expect permgen removal, G1 as the default GC, dropped tools (jhat, JavaDB) and changed version string and file names.
AI-written summary · about
chapters (23)
- 0:00Intro
- 1:29Introduction Aurelio Garcia-Ribeyro • Director Product Management, Java Platform Group, Oracle • In charge of managing the product requirements for Oracle's JDK since joining Oracle through the Sun acquisition in 2010 . Before joining Oracle, worked at Sun Microsystems for the Java Product
- 2:54One Developer's Bug Fix Is Another Developer Bug
- 7:29Common Incompatibilities Are Due To
- 9:31Important Incompatibility Expected in JDK 9
- 10:43JEP 260: Encapsulate Most Internal APIs
- 17:15JEP 223: New Version String Scheme
- 19:50JEP 220: Modular Run-Time Images
- 21:03JEP 214: Remove GC Combinations Deprecated in JDK 8
- 22:11General Rule: Look Out for Unrecognized VM Options
- 24:28JEP 231: Remove Launch-Time JRE Version Selection
- 25:31Endorsed Standard Override and Extension Mechanism, Deprecated in 8u40, Dropped in 9
- 27:28JEP 240: Remove the JVM Tool Interface hprof Agent
- 28:39The Entire HTTP Proxying Mechanism of RMI Was Deprecated in Java SE 8 And will be removed in JDK 9 • Remove RMI HTTP proxy implementation • Remove RMVJRMP HTTP tunneling implementation • Never worked properly
- 29:47Remove Serialized Applets Functionality
- 30:15Non-strict JNLP Parsing No Longer Allowed
- 31:02Remove Unsupported Apple APIs Legacy code received through Apple's contribution of their own port • JEP 272: Platform-Specific Desktop Features replaces
- 32:49JEP 271: Unified GC Logging Re-implemented GC logging with the new JVM logging framework from JEP 158 • Logs are in different format
- 34:12G1 Is the New Default Garbage Collector
- 41:29Prepare for the Future Now! 1 Download JDK 9 EA and JDK 9-Enabled IDE for example, NetBeans Dev
- 43:53Download NetBeans Dev
- 44:34Identify Problematic Dependencies Use Java Dependency Analysis Tool (deps) • Available since JDK 8 • Best results from the version in JDK 9 EA Option to find internal dependencies
- 45:29Stopgap: Expose Internal APIs But come back and fix! Sample command for earlier dev version of Netbeans








