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

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

例如。我希望我的库在java9 +项目中使用,该库将把它识别为导出特定软件包的模块,但也要在java8项目中用作纯jar文件。

最佳答案

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

在不支持MRJAR的JDK中,仅包含类和资源
在根目录中将显示
,这两个包装将是
难以区分。
在不支持MRJAR的JDK中,目录
与更高版本的Java平台相对应的版本将被忽略;它
首先在Java中搜索类和资源
特定于平台的特定于当前运行目录的目录
主要Java平台发行版
,然后搜索较低的版本
版本,最后是JAR根目录。
在Java 9 JDK上,就像
有一个JAR特定的类路径,其中首先包含版本9
文件,然后是JAR根目录;在Java 8 JDK上,此类路径
仅包含JAR根目录。

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

07-24 19:06
查看更多