从哪里获得完整的rt.jar源代码?

我正在为Oracle JRE / JDK 6 Update 22searchrt.jar的源代码。包含在交付中的src.zip并不包含所有资源,例如sun。*(例如sun.reflect.Reflection )包缺失。

我在哪里可以得到一个完整的src.zip?

编辑2017-11-22:

这个答案写在2010年,世界是非常不同的。 如果您只需要JRE类的源代码,那么在JDK构build中使用JRE – 包含的src.zip文件被大多数现代IDE所识别。

如果你确实需要完整的源代码(如果你不确定的话,你不需要),然后find一个合适的OpenJDKdebugging版本或者从源代码构buildOpenJDK。


旧2010年答案:

您可以从http://download.java.net/jdk6/source/下载JDK的完整源代码;

非常重要的注意事项:这是根据Java研究许可证,这可能会以一种不符合您需要知道这一点的方式来污染你。

Sun是JDK的一部分,它是专有的闭源Sun代码 (或自2010年以来的Oracle)。

话虽如此,您感兴趣的软件包(sun.reflect)恰好被包含在OpenJDK 7中,所有的OpenJDK源代码都是打开的。

你可以在这里获得源代码: http : //jdk7src.sourceforge.net/

如果您使用Eclipse,那么您可以如何链接到Java源文件:

  1. 正如ThorbjørnRavn Andersen提到的那样,下载JDK源代码http://download.java.net/jdk6/source/ ,并将tar.gz文件解压缩到一个文件夹中,比如'jdk.src';
  2. 打开引用来自JDK的基本java类(比如Thread)的java文件;
  3. 点击F3打开声明,期望Eclipse打开一个新的标签,带有“找不到源”信息。 它要求rt.jar源位置,但是您不需要经历编译JDK源代码的麻烦。 而是点击“attach source”button,在“source attachment configuration”popup窗口中select“External Folder”,然后指向jdk.src / jdk / src / share / classes目录。 然后,Eclipse将自动将新发现的JDK类源代码加载到同一个窗口中。

JDK 6的AFAIK部分来自OpenJDK,或者被集成到OpenJDK中。 所以也许你在这里find更多的见解:

没有源代码的类基于OpenJDK的代码。 您可以下载此源代码,您不仅可以看到Java代码,还可以看到C代码。 这对于JNI的例子也是一个很好的资源。

鲁斯塔姆是对的:太阳的味道*是不可用的。 但是你总是可以反编译* .class,并看到很可读的代码(不幸的是没有javadocs :()。