我能够使用这些说明来修补系统模块文件。 https://openjdk.java.net/projects/jigsaw/quick-start#xoverride
当尝试使用同一命令修补package-info.java时,如果修补的版本与模块中的版本具有相同的内容,则不会生成package-info.class文件。但这不适用于非程序包信息的Java文件。
javac --patch-module java.base = src -d mypatches / java.base \ src / java.base / java / util / concurrent / package-info.java
在我最初的问题中,我提到了以下错误:
package-info.java:2:错误:软件包存在于另一个模块中:java.base
我仍在尝试创建一个玩具示例来重现此错误。主要区别是出现此错误时我正在使用自定义系统模块(--system)。
答案 0 :(得分:1)
JEP 261引入了--patch-module
应用于类文件,因此它可以也适用于package-info.class。但随后继续
每个实例的作用是更改模块系统在指定模块中搜索类型的方式。
由于package-info没有定义类型,因此上述句子暗示--patch-module
对package-info
没有影响。
仍然,我相信给出的确切错误消息是指定行为下的偶然产物,就像package-info.java
被编译为与未命名包相关联,尽管它位于补丁程序路径上。