【问题标题】:Where is the source code for the java compiler? [closed]java编译器的源代码在哪里? [关闭]
【发布时间】:2023-07-19 22:40:02
【问题描述】:

我正在寻找 Sun 的标准 java 编译器的源代码,javac

jdk1.6.0_07 有几个类是相关的,但都是接口 (java.lang.Compilerjavax.tools.JavaCompiler)。 com.sun.mirror.*com.sun.source.*下面还有一些包,好像是代表java抽象语法树的接口。

但我找不到编译器源 - 有人知道它在哪里吗?

【问题讨论】:

    标签: java javac


    【解决方案1】:

    查看此网站The Java programming-language compiler (javac) group。源代码位于 Mercurial 存储库中。

    jdk7/tl/langtools(适用于 JDK 1.7)

    jdk6/jdk6/langtools(适用于 JDK 1.6)

    在我链接到您的两个站点的标题中,找到源的下载链接(bz2、zip 和 gz 格式)

    你在src\share\classes\com\sun\tools\javac\中有源代码

    【讨论】:

    • 谢谢!是官方的sun one(jdk附带的),而不是重新实现吗?顺便说一句:解析器似乎是一个简单的递归下降解析器,密切建模 JLS hg.openjdk.java.net/jdk6/jdk6/langtools/file/a9008b46db24/src/…。这样你就可以追踪语法。
    • 应该是官方的。因为大约。 2006 JDK/JRE 是开源的。曾经有一段时间,JDK/JRE 的某些部分可能工具也不是完全开源的,因为那里存在一些许可问题。如果您想知道 javac 是开源的,我建议您写信给相应的 openjdk 邮件列表
    • 谢谢,查看源代码,有些有 Sun 版权声明,有些明确表示他们的 API 不受 Sun 支持。
    • 我只是想说我非常感谢您的回答。追溯 Java 程序熟悉部分的解析(例如类声明)是印第安纳州的一个时刻;像秘密知识。更肯定的是,递归下降解析与我最近编写的代码解析完全一样:在这方面,Java 工程师是我的同龄人。
    【解决方案2】:

    【讨论】: