这是一篇转载自 Java 类文件版本标识对照表 的文章。
在 Java 体系中,Class File Versions 指的是类文件格式的版本标识,它由主版本号(major version)与次版本号(minor version)共同构成,通常以 <major>.<minor> 的形式表示。
每个 JDK 版本都带有其专属的类文件版本。类文件具有向后兼容性,但为新版 JDK 编译的类文件无法执行,将引发 UnsupportedClassVersionError 异常。
近期 JDK 版本中,主版本号随每次发布递增,次版本号固定为 0。唯一例外是使用该 JDK 版本预览功能的类文件,其次版本号固定为 65535。使用预览功能的类文件仅能由主版本号匹配的 JDK 版本加载,禁止使用更高版本 JDK 加载此类类文件。
下表列出了各 JDK 版本的类文件版本对应关系:
| JDK Version | Class File Version |
|---|---|
| Java 1.0 | 45.0 |
| Java 1.1 | 45.3 |
| Java 1.2 | 46.0 |
| Java 1.3 | 47.0 |
| Java 1.4 | 48.0 |
| Java 5 | 49.0 |
| Java 6 | 50.0 |
| Java 7 | 51.0 |
| Java 8 | 52.0 |
| Java 9 | 53.0 |
| Java 10 | 54.0 |
| Java 11 | 55.0 |
| Java 12 | 56.0 |
| Java 13 | 57.0 |
| Java 14 | 58.0 |
| Java 15 | 59.0 |
| Java 16 | 60.0 |
| Java 17 | 61.0 |
| Java 18 | 62.0 |
| Java 19 | 63.0 |
| Java 20 | 64.0 |
| Java 21 | 65.0 |
| Java 22 | 66.0 |
| Java 23 | 67.0 |
| Java 24 | 68.0 |
| Java 25 | 69.0 |
| Java 26 | 70.0 |
| Java 27 | 71.0 |