我对Java版本号的理解有些困难。我看到很多版本,比如1.4.2、1.5和1.6,但我也遇到过5.0和6.0。我不太理解这种版本控制或者版本更新进度。
我对Java相当新手,读了一点关于OpenJDK和Sun的介绍,我认为我懂了。这些版本是OpenJDK和Sun之间的差异吗?例如,OpenJDK的最新版本是1.6,Sun的是6.0?
所有这些版本对于一个刚接触Java的人来说都很令人困惑。
我对Java版本号的理解有些困难。我看到很多版本,比如1.4.2、1.5和1.6,但我也遇到过5.0和6.0。我不太理解这种版本控制或者版本更新进度。
我对Java相当新手,读了一点关于OpenJDK和Sun的介绍,我认为我懂了。这些版本是OpenJDK和Sun之间的差异吗?例如,OpenJDK的最新版本是1.6,Sun的是6.0?
所有这些版本对于一个刚接触Java的人来说都很令人困惑。
java -version
的输出)消除了旧版本控制方案的痕迹,但人们已经习惯了它并继续在口语中使用它。java -version
的输出中也消失了 1.X 表示法(导致依赖于解析它的代码出现问题),人们几乎停止使用它。我们现在有 Java 15、Java 16、Java 17 等。还要注意的是,在提问时,Sun JDK 和 OpenJDK 是单独的代码库(有很大的重叠),而 Sun JDK 是官方参考实现。
在此之后的十多年里,Java被出售给了Oracle,OpenJDK成为官方的Java参考实现,并且Oracle停止维护Oracle JDK作为单独的代码库。相反,他们只提供OpenJDK构建,并为其提供商业长期支持,包括错误修复和安全补丁。但是您也可以从AdoptOpenJDK(最近更名为"Adoptium")免费获取构建版本,只是不会获得如此长时间的支持。这个(咳咳)在Java SE 命名和版本中解释:
当前版本是Java平台标准版6(Java SE 6)。上一个版本是Java 2平台标准版5.0(J2SE 5.0)。
Sun Microsystems于2006年简化了平台名称,以更好地反映构建在Java平台中的成熟度、稳定性、可扩展性和安全性的水平。Sun从名称中删除了“2”并删除了“点数”(句号后面的数字)。 Java平台的任何更新都将仅注明为更新,而不是在平台名称的末尾添加“点数”。
由于在Java开发人员社区内具有显着的流行度,开发工具包已经恢复到了名称“JDK”,而不是“Java 2 SDK”(或“J2SDK”)。运行时环境已经恢复到了“JRE”,而不是“J2RE”。(请注意,“JDK”代表版本5.0中的“J2SE Development Kit”)。
有关平台名称和版本号的更多信息,请参见以下页面:
引用自 Java SE 6 Platform Name and Version Numbers:
在此版本中,平台名称已从J2SETM更改为JavaTM SE。官方名称是JavaTM Platform, Standard Edition 6。
两个版本号(1.6.0和6)都用于标识此版本的Java平台。版本6是产品版本,而1.6.0是开发人员版本。使用数字6反映了Java SE的成熟度、稳定性、可扩展性和安全性正在不断提高。
并且来自J2SE版本1.5.0或5.0?:
两个版本号“1.5.0”和“5.0”都用于标识Java 2平台标准版的此版本。版本“5.0”是产品版本,而“1.5.0”是开发人员版本。数字“5.0”用于更好地反映J2SE的成熟度、稳定性、可扩展性和安全性。
去掉“1.”后得到数字“5.0”。原本的1.5.0现在是5.0(1.5变成了5)。
综上所述,整个命名混乱不堪,但这 终于结束了,当前的平台名称是JavaTM平台,标准版 6(简称JavaTM SE 6)。该平台下提供了两个产品:JDKTM 6和JRETM 6。
OpenJDK 6是Java SE 6平台的开源实现,与Sun的JDK不同。
基本上忽略版本号中的 "1." 部分。
java -version
报告的版本也没有遵循这种新规则。 - Yishai