$ java -cp classes:asm-9.11.1.jar... demo.VersionLimits (25.0.5+8-LTS) running on Java 25; ClassFile.latestMajorVersion() = 69; ASM Opcodes.V25=69, V28=72 major 69: java.lang.classfile : parsed, 8 methods ASM 9.11.1 : parsed, 8 methods major 70: java.lang.classfile : java.lang.IllegalArgumentException: Unsupported class file version: 70 ASM 9.11.1 : parsed, 8 methods major 72: java.lang.classfile : java.lang.IllegalArgumentException: Unsupported class file version: 72 ASM 9.11.1 : parsed, 8 methods major 73: java.lang.classfile : java.lang.IllegalArgumentException: Unsupported class file version: 73 ASM 9.11.1 : java.lang.IllegalArgumentException: Unsupported class file version 73.0 major 99: java.lang.classfile : java.lang.IllegalArgumentException: Unsupported class file version: 99 ASM 9.11.1 : java.lang.IllegalArgumentException: Unsupported class file version 99.0 PASS major 69 parses with java.lang.classfile PASS one version above the JDK's own is rejected by java.lang.classfile PASS ASM 9.11.1 still reads major 72 (Java 28) PASS ASM 9.11.1 rejects major 73 exit=0