【问题标题】:Add Java system modules to compile in Eclipse添加 Java 系统模块以在 Eclipse 中编译
【发布时间】:2017-10-17 14:16:13
【问题描述】:

我有一些遗留的 Java 代码,即:

package org.alo.test.j9;
import javax.activation.DataHandler;   // in java.activation module
import javax.annotation.PostConstruct; // in java.xml.ws.annotation module
public class OldClass {
    public static void main(String[] args) {
        DataHandler dh = new DataHandler(null, null);
        System.out.println(dh);
    }
}

它还没有模块化,所以它需要使用--add-modules 来用 Java 9 编译它。

$ javac -version
javac 9
$ javac org/alo/test/j9/OldClass.java
src/org/alo/test/j9/OldClass.java:3: error: package javax.activation is not visible
import javax.activation.DataHandler;   // in java.activation module
            ^
  (package javax.activation is declared in module java.activation, which is not in the module graph)
src/org/alo/test/j9/OldClass.java:4: error: package javax.annotation is not visible
import javax.annotation.PostConstruct; // in java.xml.ws.annotation module
            ^
  (package javax.annotation is declared in module java.xml.ws.annotation, which is not in the module graph)
2 errors

我需要添加我正在使用的模块才能成功编译:

$ javac org/test/OldClass.java --add-modules=java.activation,java.xml.ws.annotation

我想在 Eclipse(使用 Oxygen.1a)和 Java 9 中编译它。但我收到 The import javax.activation cannot be resolved 编译错误。

如何告诉 eclipse 编译器添加这些模块?我在Eclipse documentation 中没有找到任何提示。

Here你可以找到我正在测试的一个简单的eclipse项目。

【问题讨论】:

  • What is the replacement for javax.activation package in java 9? 的可能重复项。它被弃用和升级的原因。
  • @nullpointer 这不是这个问题的重复。
  • 在这种情况下,您能否将使用中的 Eclipse 的运行配置与项目设置一起共享?
  • @nullpointer java.activation 模块只是我需要的一个例子,我已经添加了另一个模块。我还在所有 Eclipse 设置中使用的测试代码中添加了 link

标签: java eclipse java-9


【解决方案1】:

这些功能的完整文档仍需编写,但已在New & Noteworthy for Photon M3 中开始(正在进行中)。您正在寻找的功能在以

开头的段落中提到

在“内容”选项卡上,可以通过从左到右移动模块来包含或排除 JRE 系统库等容器内的单个模块,反之亦然...

此对话框选项卡结合了--add-modules--limit-modules 的效果。

编辑:在 Eclipse 2019-06 中,上述 UI 为 revamped。最新的文档可以在online help 中找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2014-02-24
    相关资源
    最近更新 更多