从源代码构建OpenJDK库?

时间:2018-03-05 12:38:48

标签: java build rt.jar

我想尝试更改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/

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

我刚刚安装了jdk,然后使用mercurial:

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

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

1 个答案:

答案 0 :(得分: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构建过程来注入更改。
  • 了解"特定于实现的文件"使用构建过程使用的工具工作并注入您的更改。