是否可以在Java 9中禁用模块?

Pav*_*l_K 9 java java-9

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

Nic*_*lai 6

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

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


Ana*_*nas 5

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

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

看看在整个面试,但正如你看到的,我们将有两种类型的Java应用程序一个模块化的世界,另一个用于非模块系统,这就是为什么红帽IBM投了反对票JSR 376所提到这里,但他们投票后这样行不行!

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

希望这是有用的