【问题标题】:sbt / native-packager, new jdeps error: java.lang.module.FindException: Module java.activation not found, required by java.xml.bindsbt / native-packager,新的 jdeps 错误:java.lang.module.FindException:找不到模块 java.activation,java.xml.bind 需要
【发布时间】: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


【解决方案1】:

javax.activation 自 java 11 以来已被删除。 要修复它,您可以:

  • 下载 javax.activation jar 并通过在模块路径上添加此 jar 来运行命令:

    jdeps --multi-release 11 -R --module-path path\to\javax.activation.jar ...

  • 使用 java 8 jdeps 运行此命令

【讨论】:

    猜你喜欢
    • 2020-02-21
    • 2021-07-27
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    相关资源
    最近更新 更多