【问题标题】:Module commons.math3 not found using jdeps使用 jdeps 找不到模块 commons.math3
【发布时间】:2021-01-21 15:59:29
【问题描述】:

我正在使用 JDEPS 列出库的依赖关系以确保它们得到满足。

我最近从 Apache POI v4.1.1 升级到 v5.0.0,其中JigSaw modules were added

以前,以下命令会输出依赖项:

jdeps --multi-release 11 poi-scratchpad-4.1.1.jar

但现在使用 v5.0.0,我得到:

jdeps.exe --multi-release 11 poi-scratchpad-5.0.0.jar
Exception in thread "main" java.lang.module.FindException: Module commons.math3 not found, required by org.apache.poi.scratchpad
        at java.base/java.lang.module.Resolver.findFail(Resolver.java:894)
        at java.base/java.lang.module.Resolver.resolve(Resolver.java:191)
        at java.base/java.lang.module.Resolver.resolve(Resolver.java:140)
        at java.base/java.lang.module.Configuration.resolve(Configuration.java:422)
        at java.base/java.lang.module.Configuration.resolve(Configuration.java:256)
        at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:564)
        at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.buildConfig(JdepsTask.java:603)
        at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:557)
        at jdk.jdeps/com.sun.tools.jdeps.JdepsTask.run(JdepsTask.java:533)
        at jdk.jdeps/com.sun.tools.jdeps.Main.main(Main.java:49)

我有 commons-math3 库,但即使我通过 -classpath 参数包含它,我仍然遇到同样的问题。

【问题讨论】:

    标签: java java-module java-platform-module-system module-info jdeps


    【解决方案1】:

    使用--module-path 而不是-classpath 选项为commons-math3-3.6.1.jar 解析的模块应该适合您。

    实际上,为简单起见,您可以将所有依赖项详细记录到一个文件夹中,然后将其视为模块路径,如下所示:

    在上图中,我创建了一个dependencies 文件夹,其中包含.jars 用于poi-scratchpad 的所有依赖库。从同一目录进一步执行以下命令有效:

    jdeps --module-path dependencies poi-scratchpad-5.0.0.jar 
    

    【讨论】:

    • 谢谢,如果我尝试--module-path,我会得到一个不同的错误,这是……什么? “线程“主”java.lang.module.FindException 中的异常:无法为 batik-script-1.13.jar 派生模块描述符”
    • 目前,无法从某些工件派生自动模块名称,例如参见this。具体来说,您仍然可以选择将它们保留在--class-path 上并同时使用属性(模块路径和类路径)。
    • @Jakg 对于您的具体情况,当找不到提供程序类导致无法派生自动模块名称时,也值得一读,如Q&A 中所述
    • 您有使用 POI 依赖项混合模块路径和类路径参数的示例吗?对我来说,它只会给出一个错误。
    • 我目前的想法是蜡染库有问题 - 当我更新到较新版本时,我收到关于另一个库模块名称的不同错误。但我不确定错误是什么,或者我如何在其他人的依赖中修复它。
    猜你喜欢
    • 2022-01-03
    • 2021-01-11
    • 1970-01-01
    • 2021-12-02
    • 2020-09-29
    • 1970-01-01
    • 2016-01-14
    • 2022-12-15
    • 1970-01-01
    相关资源
    最近更新 更多