【问题标题】:Minor version of a java class filejava类文件的次要版本
【发布时间】:2016-03-18 05:57:59
【问题描述】:

Java 类文件中的次要版本有什么用?真的用到现在了吗? https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html

【问题讨论】:

  • 我在 JDK 版本 1.0.2 中的 Oracle 的 Java 虚拟机实现支持类文件格式版本 45.0 到 45.3 的规范中错过了以下几点。 JDK 发行版 1.1.* 支持 45.0 到 45.65535(含)范围内的类文件格式版本。对于 k ≥ 2,JDK 版本 1.k 支持 45.0 到 44+k.0(含)范围内的类文件格式版本。”
  • 基本上 Oracle JDK 不打算从 java 1.2 开始更改次要版本

标签: java


【解决方案1】:

我错过了规范中的以下几点

"Oracle 在 JDK 1.0.2 版本中的 Java 虚拟机实现支持类文件格式版本 45.0 到 45.3(含)。JDK 版本 1.1.* 支持 45.0 到 45.65535(含)范围内的类文件格式版本。对于 k ≥ 2,JDK 版本1.k 支持 45.0 到 44+k.0(含)范围内的类文件格式版本。”

【讨论】:

    【解决方案2】:

    从 Java 11 JEP 12 开始,“预览语言和 VM 功能”可用。使用预览功能的类的次要版本号为0xFFFF

    一个类文件表示它依赖于 Java SE $N 的预览 VM 功能,它具有一个对应于 Java SE $N 的 major_version 项和一个设置了所有 16 位的 minor_version 项。例如,依赖于 Java SE 13 的预览 VM 功能的类文件的版本为 57.65535

    所以,这里使用了minor_version。我不知道minor_number 的任何其他用法,在所有其他情况下它是0x0000(期待最旧的Java 版本,直到版本1.1,其中minor_version 设置为0x0003)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 2014-06-08
      相关资源
      最近更新 更多