加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

为什么Java 9不会简单地将类路径上的所有JAR转换为自动模块?

发布时间:2020-12-14 05:48:07 所属栏目:Java 来源:网络整理
导读:为了理解我们的类别: 平台显式模块 应用程序显式模块 打开模块 自动模块 未命名的模块 类路径中的所有类和jar都将是未命名模块的一部分.但为什么我们需要什么呢?自动模块的优势在哪里?我可以“要求”那些该死的传统罐子,使它们成为一个自动模块.我没有把
为了理解我们的类别:

>平台显式模块
>应用程序显式模块
>打开模块
>自动模块
>未命名的模块

类路径中的所有类和jar都将是未命名模块的一部分.但为什么我们需要什么呢?自动模块的优势在哪里?我可以“要求”那些该死的传统罐子,使它们成为一个自动模块.我没有把它包括在内吗?

解决方法

至少有两个原因:

>正如常规模块一样,自动模块对模块系统的某些检查是可疑的,例如: not splitting packages.由于类路径上的JAR可以(并且偶尔会)拆分包,因此对它们进行检查将是向后兼容的并且会破坏许多应用程序.
>未命名的模块可以读取所有平台模块,而自动模块只能读取那些进入模块图的模块.这意味着需要java.desktop模块(例如)的JAR将从类路径开始工作,但不能从模块图中工作,除非java.desktop也将其放入图形中(通过依赖项或–add-modules).

我现在没时间检查第二个,但这是the State of the Module system所说的:

After a module graph is resolved,therefore,an automatic module is made to read every other named module,whether automatic or explicit

解决方案适用于声明的依赖项,自动模块声明无.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读