Files
javademos/docs/10-other-27-changes.md
T

1.9 KiB

10. The changes that are not JEPs but will still break a Monday

Prev: 9. JFR and Vector · Next: 11. Recap of Java 26

Script: scripts/other-changes.sh. All from real launches; each option runs java <option> -version on 26 and on 27 (60).

Option / property JDK 26 JDK 27
-noverify, -Xverify:none deprecation warning Unrecognized option, the JVM does not start
-noclassgc deprecation warning Unrecognized option, the JVM does not start
-XX:+UseCompressedClassPointers deprecated in 25 ignored: "support was removed in 27.0"
-XX:InitiatingHeapOccupancyPercent=40 accepted deprecated; use -XX:G1IHOP
-XX:+UseGraalJIT (experimental) JVMCI error Unrecognized VM option (JVMCI hook removed)
-Djdk.lang.Process.launchMechanism=VFORK deprecation banner "has been removed. Switching to FORK instead" (61)
-Djava.locale.useOldISOCodes=true works, deprecated ignored: Locale("iw").language is he (61)

The point of the table: rows 1-2 are the ones that stop a service from starting. They are old flags that live in Dockerfiles and JAVA_TOOL_OPTIONS long after anyone remembers why. Grep your images before you upgrade.

New public API worth knowing

Found by diffing javap dumps (51) and exercised once each in Api27 (62): Math.acosh/asinh/atanh, String.encodedLength(Charset) (length in bytes without allocating the array), BigDecimal.rootn, KeyStore.getCreationInstant.

Prev: 9. JFR and Vector · Next: 11. Recap of Java 26