微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

添加java 9系统模块在eclipse中编译

我有一些遗留的 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中使用Java 9(使用Oxygen.1a)编译它.但是我得到导入javax.activation无法解决编译错误.

如何告诉eclipse编译器添加这些模块?我在Eclipse documentation没有找到任何关于它的提示.

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

解决方法

这些功能的完整文档仍然需要编写,但是 New & Noteworthy for Photon M3(正在进行中)已经开始了.您要查找的功能在以.开头的段落中提到

On the Contents tab individual modules inside a container like JRE System Library can be included or excluded by moving the module from left-to-right or vice versa …

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

原文地址:https://www.jb51.cc/java/128673.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐