从源代码构建OpenJDK库?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从源代码构建OpenJDK库?相关的知识,希望对你有一定的参考价值。

我想在java.lang中尝试更改java库,最终可能尝试其他包。这意味着我不想使用rt.jar,而是希望能够将至少java.lang分开并编译给它们。

如果使用rt.jar,则无法在java.lang中编辑类的源代码,因为它们已在rt.jar中找到。

我在mercurial找到了回购:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/tip/src/share/classes/

但没有关于如何构建的说明。

我刚刚通过安装jdk9构建了jdk,然后使用mercurial:

hg clone http://hg.openjdk.java.net/jdk/jdk/

我可以成功构建java可执行文件和所有实用程序,但rt.jar不在此包中。

答案

Java 9构建不生成“rt.jar”文件的原因是Java 9不再具有“rt.jar”或“tools.jar”。正如JEP 220所说:

“以前存储在lib / rt.jar,lib / tools.jar,lib / dt.jar以及各种其他内部jar文件中的类和资源文件现在将以更有效的格式存储在lib中的特定于实现的文件中目录。这些文件的格式不会被指定,如有更改,恕不另行通知。“

所以......基本上......你的Java 9的构建正在发挥作用。

如果您想要修改Java类库的部分实验,我建议采用以下可能的方法:

  • 使用Java 8 ...它有一个“rt.jar”
  • 在Java 9源代码树中进行更改并以正常方式构建。
  • 通过修改Java 9构建过程,了解如何注入更改。
  • 查看“特定于实现的文件”如何工作并使用构建过程使用的工具注入您的更改。

以上是关于从源代码构建OpenJDK库?的主要内容,如果未能解决你的问题,请参考以下文章

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

我在哪里可以获得 OpenJDK(Windows)的预构建 JavaFX 库 [关闭]

Java面试题Java基础

如何在Eclipse中调试openjdk 9(主要是热点)源代码?

在 Windows 平台上使用 openjdk 运行 awt 代码时出现 NoClassDefFoundError

如何使用webpack加载库源映射?