我们目前正在从 Java 8 迁移到 Java 11。但是,升级我们的服务并没有我们预期的那么痛苦。我们基本上只需要更改我们build.gradle文件中的版本号,服务就可以愉快地启动并运行了。我们升级了库以及使用这些库的(微)服务。直到现在都没有问题。
是否需要实际切换到模块?恕我直言,这会产生不必要的成本。任何建议或进一步阅读材料表示赞赏。
澄清一下,如果在不引入模块的情况下使用 Java 9+ 代码有什么后果吗?它可以例如变得与其他代码不兼容吗?
我正在切换到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();
}
}
Run Code Online (Sandbox Code Playgroud)
错误消息是:
错误:(3,22)java:package com.sun.javafx.stage不可见(包com.sun.javafx.stage在模块javafx.graphics中声明,它不会将其导出到未命名的模块)