【问题标题】:Can I use module-info.java if target level is 8?如果目标级别为 8,我可以使用 module-info.java 吗?
【发布时间】:2019-01-09 17:37:25
【问题描述】:

我知道module-info.java被jdk9+识别

我想知道 module-info.java 是否仍然可以与目标级别 8 结合使用。

例如我希望我的库用于 java9+ 项目,它会将其识别为导出特定包的模块,但也可以在 java8 项目中作为普通 jar 文件使用。

【问题讨论】:

标签: java java-9 java-platform-module-system module-info multi-release-jar


【解决方案1】:

The Multi-Release JAR files 本身的目的完全相同。

在不支持 MRJAR 的 JDK 中,只有类和资源 根目录下可见,两个包装 无法区分。

在支持 MRJAR 的 JDK 中,目录 对应于任何以后的 Java 平台版本将被忽略;它 将首先在 Java 中搜索类和资源 对应于当前运行的平台特定目录 主要 Java 平台发布版本然后搜索那些较低的 版本,最后是 JAR 根目录

在 Java 9 JDK 上,就好像 有一个特定于 JAR 的类路径首先包含版本 9 文件,然后是 JAR 根目录;在 Java 8 JDK 上,此类路径将 仅包含 JAR 根目录。

有关基于 Maven 的示例,请查看 - maven-jep238

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多