首页 > 解决方案 > java在模块导出补丁包时抛出InvalidModuleDescriptorException

问题描述

javajava.lang.module.InvalidModuleDescriptorExceptionmodule-info.class模块路径中的目录中的 a 导出不在同一目录下的包时, 10.0.2+13 会抛出 a 。

在许多情况下,这是明智的行为,但在我的情况下,我将包放在另一个目录下,该目录使用--patch-module.

例子:

模块m在文件中定义classes/m/module-info.class

m出口包p

module-info.class是 directory 的唯一孩子classes/m

目录classes/patch包含p/Main.class.

简化的命令行:

java --module-path classes/m --patch-module m=classes/patch --module m/p.Main

上面会抛出一个java.lang.module.InvalidModuleDescriptorException说“在模块中找不到包 p”。

有什么方法可以java不抛出InvalidModuleDescriptorException,而不必将class文件从classes/m&复制classes/patch到同一目录或同一jar文件中?

标签: javajava-9java-10java-modulejava-platform-module-system

解决方案


推荐阅读