Java版本對應關系表
以下Java主要版本(Major Version)與公開大版本號的對應關系
公開大版本名稱 | Major 版本號 | 內部版本號格式 | 示例(java -version 輸出) |
---|---|---|---|
Java 8 (1.8) | 52 (0x34) | 1.8.0_XXX | 1.8.0_301 |
Java 9 | 53 (0x35) | 9.0.X | 9.0.4 |
Java 10 | 54 (0x36) | 10.0.X | 10.0.2 |
Java 11 (LTS) | 55 (0x37) | 11.0.X | 11.0.12 |
Java 12 | 56 (0x38) | 12.0.X | 12.0.2 |
Java 13 | 57 (0x39) | 13.0.X | 13.0.2 |
Java 14 | 58 (0x3A) | 14.0.X | 14.0.2 |
Java 15 | 59 (0x3B) | 15.0.X | 15.0.2 |
Java 16 | 60 (0x3C) | 16.0.X | 16.0.2 |
Java 17 (LTS) | 61 (0x3D) | 17.0.X | 17.0.3 |
Java 18 | 62 (0x3E) | 18.0.X | 18.0.2 |
Java 19 | 63 (0x3F) | 19.0.X | 19.0.1 |
Java 20 | 64 (0x40) | 20.0.X | 20.0.1 |
Java 21 (LTS) | 65 (0x41) | 21.0.X | 21.0.0 |
關鍵說明
-
Major版本號的作用
- 用于.class文件的兼容性標識。例如,Java 8生成的類文件Major版本號為52,Java 11為55。
- JVM會根據Major版本號判斷是否支持運行該.class文件(低版本JVM無法運行高版本類文件)。
-
版本命名規則的演變
- Java 8及之前:使用
1.x
格式(如Java 8對應1.8.0
)。 - Java 9及之后:直接使用單個數字(如Java 9、11、17),并采用半年發布周期(非LTS版本僅提供6個月支持,LTS版本支持數年)。
- Java 8及之前:使用
-
如何查看當前Java版本
java -version # 示例輸出: openjdk version "21" 2023-09-19 OpenJDK Runtime Environment (build 21+35-2513) OpenJDK 64-Bit Server VM (build 21+35-2513, mixed mode, sharing)
版本信息獲取途徑
-
官方文檔
- Oracle Java版本列表:Oracle Java SE Releases
- OpenJDK官方維基:JDK Release Project
-
版本發布說明(Release Notes)
- 每個版本的詳細變更和版本號可在對應版本的Release Notes中查找:
- OpenJDK: JDK Release Notes
- Oracle: Java SE Documentation
- 每個版本的詳細變更和版本號可在對應版本的Release Notes中查找:
-
Class文件版本號查詢
-
使用
javap
命令查看.class文件的Major版本號:javap -v DemoApplication.class | grep "major version"major version: 65 # major version: 65 對應Java 21
-
-
第三方資源
- 維基百科:Java版本歷史
- Java版本支持時間表:Java版本支持時間表(如Azul)
注意事項
- LTS(長期支持)版本:Java 8、11、17、21為LTS版本,企業環境中廣泛使用,提供長期更新支持。
- 兼容性問題:高版本Java編譯的類文件無法在低版本JVM中運行(需通過
-source
和-target
參數指定兼容性)。 - 版本號跳躍:Java 9的Major版本號為53,而非51(因歷史原因跳過了Java 1.9的命名)。