如果目标级别为8,我可以使用module-info.java吗?

Mar*_* An 5 java java-platform-module-system java-9 module-info multi-release-jar

我知道module_info.java被jdk9 +识别

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

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

Nam*_*man 5

多版本 JAR 文件本身就具有完全相同的目的。

不支持MRJAR的JDK中,只有根目录中的类和资源是可见的,并且这两个包将无法区分。

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

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

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