我从事一个javafx项目,当我试图使用jlink来制作我的图像时,我遇到了一个问题。我的java版本: java 19 2022-09-20
下面是我的模块-info.java:
module org.aned.mosaic {
exports mosaic;
requires java.logging;
requires org.apache.commons.lang3;
requires java.xml.bind;
requires java.desktop;
requires transitive javafx.graphics;
requires transitive javafx.controls;
requires transitive javafx.fxml;
}我的jlink命令:
jlink --output output/image --module-path "output/modules;C:\Program Files\Java\javafx-sdk-19\lib;C:\Users\alex_\.m2\repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;C:\Users\alex_\.m2\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar" --add-modules org.aned.mosaic --launcher Mosaic=org.aned.mosaic以及产出:
Error: Module java.activation not found, required by java.xml.bind
java.lang.module.FindException: Module java.activation not found, required by java.xml.bind
at java.base/java.lang.module.Resolver.findFail(Resolver.java:892)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:192)
at java.base/java.lang.module.Resolver.resolve(Resolver.java:141)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:420)
at java.base/java.lang.module.Configuration.resolve(Configuration.java:254)
at jdk.jlink/jdk.tools.jlink.internal.Jlink$JlinkConfiguration.resolve(Jlink.java:217)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImageProvider(JlinkTask.java:536)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.createImage(JlinkTask.java:424)
at jdk.jlink/jdk.tools.jlink.internal.JlinkTask.run(JlinkTask.java:276)
at jdk.jlink/jdk.tools.jlink.internal.Main.run(Main.java:56)
at jdk.jlink/jdk.tools.jlink.internal.Main.main(Main.java:34)据我所知,问题在于使用java.xml.bind模块的java.activation模块,而且这个模块似乎不存在于java 19中。
我尝试下载jaf-1.1.1,并将activation.jar文件用作一个模块,但没有成功。
我也试图添加模块-info.java "requires java.activation;“
我刚开始使用java模块,也许我错过了一些东西。有办法从使用java.xml.bind的模块创建映像吗?
谢谢,
发布于 2022-10-30 18:28:08
尝试使用jlink直接创建可执行映像不是一个好主意,因为在几乎每一个严肃的项目中,您都必须处理尚未模块化的代码,因此无法使用jlink。对于另一种选择,请看这里,例如:https://github.com/dlemmermann/JPackageScriptFX
https://stackoverflow.com/questions/74255433
复制相似问题