我正在尝试在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:
标签 955jdk8-b131 标签 1888
jdk8u131-b00
最多 jdk8u131-b11 标签 1915
有人可以向我解释一下天才是在管理这个吗?我在哪里可以获得在家中构建我的jdk的源代码?为什么?
THX, 动物
答案 0 :(得分:2)
其中一些非常愚蠢。这是OpenJDK 8的初始开发和更新是两个不同的OpenJDK项目的结果。
JDK 8 Project最初负责开发和发布OpenJDK 8。
JDK 8 Updates Project负责开发和发布OpenJDK 8的发布后更新。
换句话说,请勿使用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变更集标记")。