通过ant编译JDK



我想编译jdk文件,以便包含调试信息。我想使用ant,因为它包含在我的NetBeans环境中,所以我做了以下操作:

  1. 解压/src.zip到tmp目录
  2. 在我的tmp目录下创建了一个非常简单的build.xml文件(一个默认目标,一个参数):
<>之前& lt; ?xml version="1.0" encoding="UTF-8"?>& lt;目标名="默认">& lt; javac srcdir = "。"destdir = " jdkwd "debug = " "/>& lt;/目标>& lt;/项目>之前
  1. 创建jdkwd目录
  2. 启动的蚂蚁没有参数(只是>log.txt)

这会导致100个编译错误,例如:

    [javac] C:jdkdebugjavaawtWindow.java:196: cannot find symbol
[javac] symbol  : class IdentityArrayList
[javac] location: class java.awt.Window
[javac]     private static final IdentityArrayList<Window> allWindows = new IdentityArrayList<Window>();

我的机器上只安装了一个JDK,所以我不知道为什么它不能解析所有这些引用。

更新:这些未解析的引用大部分属于包:

sun.awt.util

问题现在更正为:丢失的jdk文件在哪里?

构建JDK本身是一个复杂的过程,不能通过在ant项目中包装一个简单的javac调用来实现。

您应该查看OpenJDK Build README以获取如何为您的平台构建的说明。

http://www.oracle.com/technetwork/java/faq-141681.html

阿。在哪里可以获得Java编程语言的源代码?

Java Software有两个独立的源代码包,您可以免费获得:

Java 2 SDK,标准版本身包含一个名为src.zip的文件,其中包含Java包中公共类的源代码。因为它不包含sun。类,您不能从这些源文件完成Java技术的完整构建。这些源文件是为您提供信息,以补充文档,以便您可以了解Java技术是如何工作的。

完整的源代码发布可以通过访问社区源代码许可网站获得。

社区源代码链接不正确:现在是http://download.java.net/openjdk/jdk7/

尝试在javac调用中添加类路径。

<classpath path="/PATH/to/missing_class/" />

另外,尝试使用-d和-v选项运行ant。它有很多输出,但是会告诉你它在哪里搜索类。

根据这篇文章(从2007年开始),你应该在你的类路径中包含rt.jar和tools.jar来编译JRE源代码。

然而,我试过了,它不适合我(100个错误)。

在christhielen的Java bug请求调试符号的帖子中有更详细和更老(2004年)的说明。

如果你使用Gentoo编译OpenJDK就像运行emerge dev-java/icedtea一样简单。

有一个debug使用标志,将关闭所有优化,我没有尝试过它自己,但机会是,这是你想要的。如果不是这样,那么更改构建脚本应该不是什么大问题,但需要您学习一点portage。

相关内容

  • 没有找到相关文章

最新更新