有没有办法让 Java 9 停止抱怨无法访问的包?
Is there a way to get Java 9 to stop complaining about inaccessible packages?
我正在切换到 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();
}
}
错误信息是:
Error:(3, 22) java: package com.sun.javafx.stage is not visible (package com.sun.javafx.stage is declared in module javafx.graphics, which does not export it to the unnamed module)
你提到的类和包在私有包中,在阶梯中是一个新的可见级别。这意味着您可能无法访问它们,因为整个模块化是强制性的,而不是可选的。即使您不使用模块化,您也在使用它。
所以帮自己一个忙,使用 public API。
我正在切换到 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();
}
}
错误信息是:
Error:(3, 22) java: package com.sun.javafx.stage is not visible (package com.sun.javafx.stage is declared in module javafx.graphics, which does not export it to the unnamed module)
你提到的类和包在私有包中,在阶梯中是一个新的可见级别。这意味着您可能无法访问它们,因为整个模块化是强制性的,而不是可选的。即使您不使用模块化,您也在使用它。
所以帮自己一个忙,使用 public API。