是否可以在 Java 9 中禁用模块?[已关闭]

2022-09-03 02:12:57

我使用OSGI,这是我想禁用模块的主要原因,因为我真的不需要另一个模块框架。是否可以这样做,例如使用命令行选项?如果是,那么如何?


答案 1

没有关闭模块系统的选项 - 它将始终处于活动状态。这会影响对 JDK 内部 API 的访问、对 Java EE 模块的依赖性、拆分包以及许多其他小细节。如果您希望应用程序在 Java 9 上运行,您的代码和依赖项必须处理这些迁移挑战。

但是,您绝不是被迫创建模块的。您可以完全忽略并继续将所有 JAR 放在类路径上。模块系统将静默地将它们全部捆绑到未命名的模块中,该模块是为实现最大兼容性而创建的。你甚至不会注意到模块系统的存在(假设你已经克服了我之前描述的挑战)。module-info.java


答案 2

是的,你当然可以,正如受访者在这里所说的那样

Trisha Gee:许多人没有意识到你可以在不使用Jigsaw的情况下使用Java 9及其所有闪亮的新功能,也就是说,你可以非常愉快地使用Java 9,而无需迁移任何代码。在Java 9中有一些东西已经发生了变化(例如,隐藏内部API),但从理论上讲,如果你的应用程序一开始就做了所有正确的事情,那么使用Java 9进行编译和运行应该没有问题。

看看整个采访,但正如你所看到的,我们将有两种Java应用程序类型,一种用于模块化世界,另一种用于非模块系统,这就是为什么Red HatIBMJSR 376投了反对票,正如这里提到的,但他们投票还行!

有关带有OSGIJava 9模块系统的更多信息,请在此处查看

希望这是有用的


推荐