如何在使用模块时修补package-info.java文件?

问题描述 投票:0回答:1

我可以使用这些说明修补系统模块文件。 https://openjdk.java.net/projects/jigsaw/quick-start#xoverride

尝试使用相同的命令修补package-info.java时,如果修补版本的内容与模块中的版本相同,则不会生成package-info.class文件。但是这种行为不适用于非package-info java文件。

javac --patch-module java.base = src -d mypatches / java.base \ src / java.base / java / util / concurrent / package-info.java

在我原来的问题中,我提到了以下错误:

package-info.java:2:error:包存在于另一个模块中:java.base

我仍在尝试创建一个玩具示例来重现此错误。主要区别在于,当我收到此错误时,我正在使用自定义系统模块(--system)。

java javac java-9 jigsaw
1个回答
1
投票

JEP 261介绍--patch-module作为应用于类文件,因此它也可以应用于package-info.class。但后来它继续下去

每个实例的作用是更改模块系统在指定模块中搜索类型的方式。

由于package-info没有定义类型,上面的句子暗示--patch-modulepackage-info没有影响。

尽管如此,我仍然认为给出的确切错误消息是指定行为下的偶然伪像,就好像package-info.java被编译为与未命名的包相关联,尽管它位于补丁路径上。

© www.soinside.com 2019 - 2024. All rights reserved.