我知道jdk9 +可以识别module-info.java
但是我想知道module-info.java是否仍然可以与目标级别8结合使用。
例如我希望我的库在java9 +项目中使用,它将被识别为导出特定软件包的模块,但也要在java8项目中用作纯jar文件。
答案 0 :(得分:2)
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。