![](/img/trans.png)
[英]How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version
[英]Is there a way to show the range of major.minor class versions supported by a jvm?
java命令可以打印它支持的類版本范圍嗎? 或者是否有在線某處每個 jvm 版本的此信息列表?
JVM 規范 §4.1中描述了對支持的類文件版本的要求:
+---------+-----------------------------+--------------------------+
| Java SE | Corresponding major version | Supported major versions |
+---------+-----------------------------+--------------------------+
| 1.0.2 | 45 | 45 |
| 1.1 | 45 | 45 |
| 1.2 | 46 | 45 .. 46 |
| 1.3 | 47 | 45 .. 47 |
| 1.4 | 48 | 45 .. 48 |
| 5.0 | 49 | 45 .. 49 |
| 6 | 50 | 45 .. 50 |
| 7 | 51 | 45 .. 51 |
| 8 | 52 | 45 .. 52 |
| 9 | 53 | 45 .. 53 |
| 10 | 54 | 45 .. 54 |
| 11 | 55 | 45 .. 55 |
| 12 | 56 | 45 .. 56 |
| 13 | 57 | 45 .. 57 |
+---------+-----------------------------+--------------------------+
對於major_version 為56 或以上的類文件,其minor_version 必須為0 或65535。
對於major_version 介於45 和55 之間的類文件,minor_version 可以是任何值。
JDK 支持類文件格式版本的歷史觀點是有保證的。 JDK 1.0.2 支持 45.0 到 45.3 版本(含)。 JDK 1.1 支持 45.0 到 45.65535 版本(含)。 當 JDK 1.2 引入對主要版本 46 的支持時,該主要版本下唯一支持的次要版本是 0。后來的 JDK 延續了引入對新主要版本(47、48 等)的支持但僅支持次要版本 0 的做法在新的主要版本下。 最后,Java SE 12 中預覽特性的引入(見下文)激發了類文件格式次要版本的標准角色,因此 JDK 12 在主要版本 56 下支持次要版本 0 和 65535。后續 JDK 引入了對 N 的支持.0 和 N.65535,其中 N 是已實現的 Java SE 平台的相應主要版本。 例如,JDK 13 支持 57.0 和 57.65535。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.