我正在切换到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中声明,它不会将其导出到未命名的模块)
答案 0 :(得分:5)
您提到的类和包是在私有包中,梯形图中的新可见性级别。这意味着您可能无法访问它们,因为整个模块化是强制性的,而不是可选的。即使您没有使用模块化,也可以使用它。
所以帮自己一个忙,并使用公共API。