Java类文件格式主要版本号列表?

Rob*_*ram 144 java version

我在另一篇文章中看到了Java的主要版本号列表:

  • Java 1.2使用主要版本46
  • Java 1.3使用主要版本47
  • Java 1.4使用主要版本48
  • Java 5使用主要版本49
  • Java 6使用主要版本50
  • Java 7使用主要版本51
  • Java 8使用主要版本52
  • Java 9使用主要版本53
  • Java 10使用主要版本54
  • Java 11使用主要版本55

参考文献:

https://blogs.oracle.com/darcy/entry/source_target_class_file_version https://en.wikipedia.org/wiki/Java_class_file#General_layout

小智 51

主要版本号官方来源:

Java SE 21 虚拟机规范,第 4 章。类文件格式

可以在此处找到 JVM 规范的最新发布版本。


Mic*_*ael 38

这些来自类版本.如果你试图在java 5运行时加载为java 6编译的东西,你将得到错误,不兼容的类版本,得到50,预期49.或类似的东西.

这里的字节偏移7的更多信息.

其他信息也可以在这里找到.


小智 18

我在Wikipedia页面上找到了一个Java类文件版本列表,它描述了类文件格式:

http://en.wikipedia.org/wiki/Java_class_file#General_layout

在字节偏移6和7下,列出了与它们对应的Java VM的版本.


And*_*ert 12

如果您在 处有一个类文件build/com/foo/Hello.class,您可以使用以下命令检查它编译的 java 版本:

javap -v <path to class file> | grep "major"
Run Code Online (Sandbox Code Playgroud)

用法示例:

$ javap -v build/classes/com/example/Book.class | grep major
  
major version: 57
Run Code Online (Sandbox Code Playgroud)

根据OP中的表格,主要版本57意味着类文件被编译为JDK 13字节码级别