如何将模块声明注入到 JAR 中?

2023-12-12

假设我有一些图书馆lib.jar我没有源代码(或者它是用某种非 Java 语言编写的,目前还不知道模块)。lib.jar不具有module-info.class我不想将它用作自动模块,所以我想注入module-info.class进去。

我首先生成module-info.java使用以下命令:

jdeps --generate-module-info . lib.jar

假设这生成了类似的东西:

module lib {
    exports package1;
    exports package2;
}

然后我尝试编译它但是javac失败,因为包package1 and package2不存在:

> javac module-info.java
module-info.java:4: error: package is empty or does not exist: package1

当然,我可以创建目录package1 and package2其中有虚拟类,但是有更好的方法吗?


是的,这是可能的--patch-module选项。此选项最常在运行时使用,但它也可以在编译时使用:

javac --patch-module <module name>=<path to jar> module-info.java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将模块声明注入到 JAR 中? 的相关文章

随机推荐