【问题标题】:How does Eclipse compile classes with only a JRE?Eclipse 如何只使用 JRE 编译类?
【发布时间】:2010-12-11 04:05:32
【问题描述】:

我需要使用已“定制”的特殊 JRE 批量编译。

Eclipse 能够使用这个 JRE 编译类,但是我需要在 Eclipse 之外创建一个构建脚本。

Eclipse在没有JDK的情况下生成.class文件的方法是什么?

【问题讨论】:

    标签: eclipse compilation java


    【解决方案1】:

    对于感兴趣的案例:Eclipse 的编译器是JDT core 的一部分。

    【讨论】:

      【解决方案2】:

      Eclipse 最初由 IBM 创建。 Eclipse 有自己的内置 Java 编译器,它基于 IBM 的 Java 编译器 Jikes

      【讨论】:

      • 我不认为 Eclipse 编译器是基于 Jikes 的。它很可能受到它的启发,但由于 jikes 是用 C++ 实现的,而 Eclipse 编译器是纯 Java,我怀疑它们继承了任何主要的代码部分。
      • 好吧,如果是这样,那么 Eclipse 编译器就不是 Jikes。至少它们都来自 IBM。
      【解决方案3】:

      Eclipse 自带编译器,原因如下:

      • 增量编译(可以只编译项目的更改部分,这可能意味着比您刚刚保存的文件数量更多,例如,当您更改某些全局时)
      • 即使代码包含错误,Eclipse 编译器也可以创建类文件。即使不是所有内容都可以编译,这也允许运行项目。
      • 编译器为 Eclipse 提供了一个AST,因此它可以做各种花哨的事情(比如大纲,显示所有使用光标下变量的位置等),而无需额外费用(即它不会'不必运行编译器另一个解析器)。

      【讨论】:

      • 甚至还有关于如何在 Eclipse 之外将 Eclipse 编译器作为独立应用程序运行的文档:help.eclipse.org/galileo/topic/org.eclipse.jdt.doc.isv/guide/…
      • 接受来自 Joachim 的评论。我找到了相同的链接,其中完整描述了如何使用 BatchCompiler 类。
      • 感谢您的精彩解释。你在哪里找到这些信息的?我很难找到有关 Eclipse 编译器特性的信息。
      • 全网。我正在阅读Planet EclipseEclipse Forums 和源代码。
      • @AaronDigulla 那么,为什么要强制在首选项中选择 “已安装的 JRE”
      【解决方案4】:

      我相信 Eclipse 带有内部编译器,您可以选择与 Java 1.3 到 1.6 的兼容性(检查 Preferences 菜单,在 Java->Compiler 下)。所以Eclipse不需要外接JDK来编译,因为自带JDK就自给自足了。

      如果您想在 Eclipse 之外创建构建脚本,您将需要一个外部编译器,就像真正的 JDK 附带的那样。

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多