有没有办法让Java 9停止抱怨无法访问的软件包?

时间:2017-11-20 21:02:27

标签: java-9 jigsaw

我正在切换到Java 9(对于HTTP / 2客户端,以及其他好处),但不打算使用Java 9模块化。

我收到大量关于无法访问的软件包的编译器错误。每个人都要求我添加一个额外的--add-exports modulename/packagename=ALL-UNNAMED编译器标志。

是否有一些编译器标志,我可以指定一次,添加所有导出而不再获得编译器错误?

以下是显示问题的示例代码:

package com.prosc.fx;

import com.sun.javafx.stage.WindowHelper;

public class CompilerFlagTest {
    public static void main(String[] args) {
        WindowHelper.getWindowAccessor();
    }
}

错误消息是:

  

错误:(3,22)java:package com.sun.javafx.stage不可见(包com.sun.javafx.stage在模块javafx.graphics中声明,它不会将其导出到未命名的模块)

1 个答案:

答案 0 :(得分:5)

您提到的类和包是在私有包中,梯形图中的新可见性级别。这意味着您可能无法访问它们,因为整个模块化是强制性的,而不是可选的。即使您没有使用模块化,也可以使用它。

所以帮自己一个忙,并使用公共API。