首页 文章

从源代码构建OpenJDK库?

提问于
浏览
1

我想在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不在此包中 .

1 回答

  • 1

    您的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构建过程,了解如何注入更改 .

    • 使用构建过程使用的工具,了解"implementation-specific files"如何工作并注入更改 .

相关问题