I saw this list of major version numbers for Java in another post:

  • Java 1.2 uses major version 46
  • Java 1.3 uses major version 47
  • Java 1.4 uses major version 48
  • Java 5 uses major version 49
  • Java 6 uses major version 50
  • Java 7 uses major version 51
  • Java 8 uses major version 52
  • Java 9 uses major version 53
  • Java 10 uses major version 54
  • Java 11 uses major version 55
  • Java 12 uses major version 56
  • Java 13 uses major version 57
  • Java 14 uses major version 58
  • Java 15 uses major version 59
  • Java 16 uses major version 60
  • Java 17 uses major version 61

Where does this list come from? Is there a specific reference for this? Preferably something that shows minor versions too?

推荐答案

These come from the class version. If you try to load something compiled for java 6 in a java 5 runtime you'll get the error, incompatible class version, got 50, expected 49. Or something like that.

See here in byte offset 7 for more info.

Additional info can also be found here.

Java相关问答推荐

使用Apache Poi MQLSlideShow,在XSLFTable表中,我们可以在文本段落后面的每个单元格中包含圆角矩形吗?

BiPredicate和如何使用它

Javascript在边界中心调整ImageView大小

Java中后期绑定的替代概念

Spring和可编辑";where";@Query

从ActiveMQ Classic迁移到ActiveMQ Artemis需要进行哪些客户端更改?

使用用户引入的参数生成人员数组

在Ubuntu 23.10上使用mp3创建JavaFX MediaPlayer时出错

Regex以查找不包含捕获组的行

EXCEL中的公式单元格显示#NAME?

使IntelliJ在导入时优先 Select 一个类或将另一个标记为错误

为什么mvn编译生命周期阶段不只是编译已更改的java文件?

Java集合:NPE,即使没有添加空值

为什么使用lo索引来解决二进制搜索问题不同于使用hi索引?

将@Transactional添加到Spring框架中链下的每个方法会产生什么效果?

URI构造函数错误?

OpenAPI Maven插件生成错误的Java接口名称

Jackson YAML:支持锚点扩展/覆盖

在数组列表中找到对象后,未从数组中删除对象

在对象列表上调用提取后,如何判断没有值为空?