我可以使用什么版本的openjdk8来构建更新131,与oracle的最新版本相同? jdk8 / jdk8u?

时间:2017-05-21 13:30:47

标签: build openjdk

我正在尝试在RHEL 7.3上构建自己的jdk8几天。到目前为止,我在这里使用了来源:http://hg.openjdk.java.net/jdk8/jdk8/

但也有http://hg.openjdk.java.net/jdk8u/jdk8u/

1)两者有什么不同?

2)我必须选择哪一个获得更新131(现在与oracle相同)?

当我下载源代码并执行hg tags

a)在jdk8中,有一个 jdk8-b131 ,标签为 939

b)在jdk8u中,有很多jdk8:

标签 955

jdk8-b131 标签 1888

jdk8u131-b00

最多 jdk8u131-b11 标签 1915

有人可以向我解释一下天才是在管理这个吗?我在哪里可以获得在家中构建我的jdk的源代码?为什么?

THX, 动物

1 个答案:

答案 0 :(得分:2)

其中一些非常愚蠢。这是OpenJDK 8的初始开发和更新是两个不同的OpenJDK项目的结果。

换句话说,请勿使用jdk8/jdk8!它们包含未修补的漏洞。

让我们分解OpenJDK 8 jdk8(uXYZ)-bABC

中使用的标记格式
  • jdk8表示这是JDK 8或更新
  • uXYZ表示此标记指示的JDK 8更新
  • bABC是此特定更新的内部版本号。在Oracle之外,构建数字对我们来说毫无意义。它们对应于一些内部版本号。

jdk8u和jdk8之间的jdk8-bXYZ标记应该相同,因为更新存储库包含来自初始jdk8存储库的所有标记。 jdk8uXYZ-bABC标签是您想要的标签。这些标签按数字顺序排列。与jdk8u131-b00相比,jdk8u131-b11是早期版本。

因此,如果您需要最新的JDK 8更新,请查看http://hg.openjdk.java.net/jdk8u/jdk8u/(或基本相同的内容但更快(可能)获得更新:http://hg.openjdk.java.net/jdk8u/jdk8u-dev/),找到jdk8uXYZ-bABC标记其中XYZ是最高值(选择jdk8u121而不是jdk8u23),然后选择具有最高ABC值的那个(选择jdk8u121-b02而不是jdk8u121-b01和{{ 1}})。请记住,它可能是一个开发中的版本!

如果您知道某些内容类似于Oracle的JDK 8 Update 131,请查找jdk8u49-b24标记,其中jdk8u131-ABC的值最高(似乎为ABC) 。在Oracle公开发布类似编号的更新后,标签不会发生变化。

每个人都同意这是一个糟糕的版本控制系统。我知道有些人公开反对这个奇怪的存储库系统,我同意他们的看法。

通过JEP 223为OpenJDK 9修复标记(请参阅" Mercurial变更集标记")。