scala - sbt / native-packager, new jdeps error: java.lang.module.FindException: Module java.activation not found, required by java.xml.bind
问题描述
据我所知,我没有改变我的设置。到今天为止,尝试使用 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 会抱怨呢?如果我 exclude javax.xml.bind
,它可以工作,但现在我担心我实际上在类路径上缺少东西。
解决方案
javax.activation 自 java 11 以来已被删除。要修复它,您可以:
下载 javax.activation jar 并通过在模块路径上添加此 jar 来运行命令:
jdeps --multi-release 11 -R --module-path path\to\javax.activation.jar ...
使用 java 8 jdeps 运行此命令
推荐阅读
- c# - C# CefSharp 不保存或加载任何缓存
- java - 为什么我不能将带有球衣的 pdf 发送到浏览器客户端?
- python - 强制 numpy 使用 OpenBlas
- swift - Swift 5 从 super 子类化,需要初始化
- javascript - 在 javascript 的变量中添加 px 或 vh 值
- c++ - 如果我的输入超过多行,我需要输出也超过多行
- python - Pandas 基于 datetime 标识的前一列值的百分比变化
- php - 提交表单时无法在php中获取单选按钮的值
- c++ - 为什么 std::pair
和 std::tuple 生成不同的代码 - javascript - data.length 未定义