首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与自动模块一起使用jlink

与自动模块一起使用jlink
EN

Stack Overflow用户
提问于 2018-09-26 12:46:44
回答 1查看 6.7K关注 0票数 25

我有一个显式的模块化项目,它依赖于一个自动模块,例如java.activation。仍然可以使用jlink吗?

请参阅这个模块-info.java:

代码语言:javascript
复制
module hello {
    requires java.activation;
}

则jlink无法添加模块:

代码语言:javascript
复制
$ jlink --module-path target/modules --add-modules hello --output target/jlink
Error: automatic module cannot be used with jlink: java.activation from file:///C:/Development/jlinkExample/target/modules/javax.activation-api-1.2.0.jar

据我理解,一个自动模块无论如何都会包含整个类路径。所以我想用jlink创建运行时映像不会有什么好处吧?

另见:什么是自动模块?

是否有可能绕过这一问题?可能会为这些依赖项生成一个模块-info.java?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-28 05:03:02

根据我的理解,一个自动模块无论如何都会包含整个类路径,所以我想用jlink创建运行时映像没有好处吗?

不,自动模块不会包含整个类路径。实际上,未显式定义为模块(包含module-info.java)但在模块路径上发现的工件被视为自动模块,以弥合显式模块和类路径代码之间的差距。

是否有可能绕过这个问题,为这些依赖项生成模块信息?

是的,您可以使用jdeps或像调制器这样的插件为模块生成模块信息,并将其插入到现有的JAR中。

一旦工件(JAR)有了显式的模块声明,jlink就应该接受它,而不会失败。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52518105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档