【发布时间】:2021-12-02 23:19:47
【问题描述】:
据我所知,我没有更改我的设置。到今天为止,尝试使用 jlink 运行 sbt native packager 会出现此错误:
[info] Running: jdeps --multi-release 11 -R ...
[error] Exception in thread "main" java.lang.module.FindException: Module java.activation not found, required by java.xml.bind
[error] at java.base/java.lang.module.Resolver.findFail(Resolver.java:877)
[error] at java.base/java.lang.module.Resolver.resolve(Resolver.java:191)
[error] at java.base/java.lang.module.Resolver.resolve(Resolver.java:140)
[error] at java.base/java.lang.module.Configuration.resolve(Configuration.java:422)
[error] at java.base/java.lang.module.Configuration.resolve(Configuration.java:256)
[error] at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:564)
[error] at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:603)
[error] at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:557)
[error] at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:533)
[error] at jdk.jdeps/com.sun.tools.jdeps.Main.run(Main.java:64)
[error] at jdk.jdeps/com.sun.tools.jdeps.Main$JDepsToolProvider.run(Main.java:73)
[error] at java.base/java.util.spi.ToolProvider.run(ToolProvider.java:137)
[error] at ru.eldis.toollauncher.ToolLauncher.runTool(ToolLauncher.java:68)
[error] at ru.eldis.toollauncher.ToolLauncher.lambda$main$1(ToolLauncher.java:33)
[error] at ru.eldis.toollauncher.ToolLauncher.main(ToolLauncher.java:48)
我该如何解决这个问题?我尝试将javax.activation 添加到libraryDependencies,这似乎没有任何效果或与此问题有关。
编辑: 的根本问题似乎是我对 Pi4j 1.4 的依赖,它依赖于 javax.xml.bind:jaxb-api,而后者又依赖于 javax.activation:javax.activation-api。现在我不太了解这些 Java 模块的东西,但是 javax.activation-api 确实存在于 Maven 上,那么为什么 jdeps 会抱怨呢?如果我排除javax.xml.bind,它可以工作,但现在我担心我实际上在类路径上丢失了一些东西。
【问题讨论】:
-
您是否考虑过迁移到 Pi4J V2?那个是完全模块化的,只有 slf4j 作为依赖...
标签: scala sbt sbt-native-packager jlink