通过ant编译jdk

Ago*_*noX 11 java ant compiler-errors

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

  1. 在tmp目录中解压缩/src.zip
  2. 在我的tmp目录中创建了一个非常简单的build.xml文件(一个默认目标,一个taks):
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="CompileJDK" default="default" basedir=".">
    <target name="default">
    <javac srcdir="."
             destdir="jdkwd"
             debug="on"
    />
    </target>
    </project>
  1. 创建了一个jdkwd目录
  2. 启动没有参数的ant(只是> log.txt)

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

    [javac] C:\jdkdebug\java\awt\Window.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>();
Run Code Online (Sandbox Code Playgroud)

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

更新:大多数这些未解决的引用属于包:

sun.awt.util
Run Code Online (Sandbox Code Playgroud)

现在的问题已更正为:缺少的jdk文件在哪里?

Rob*_*anu 11

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

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


Gee*_*nte 8

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

A14.我在哪里可以获得Java编程语言源代码?

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

Java 2 SDK,Standard Edition本身包含一个名为src.zip的文件,其中包含java包中公共类的源代码.因为它不包含sun.*类,所以无法从这些源文件中完整地构建Java技术.这些源文件仅供参考,以补充文档,因此您可以了解Java技术的工作原理.

我们可以通过访问社区源代码许可网站获取完整的源代码版本.

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