开发者社区> 问答> 正文

jdeps 分析报错,影响进一步精简打包

C:\Users\xfl666.gradle\caches\modules-2\files-2.1\com.alibaba.fastjson2\fastjson2\2.0.14\15aafba518aa2ab423c762fb4d9d5619ba81bda0>"C:\Program Files\Java\graalvm-ce-java17-22.2.0\bin\jdeps" --multi-release 17 .\fastjson2-2.0.14.jar Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8 Exception in thread "main" java.lang.module.FindException: Error reading module: .\fastjson2-2.0.14.jar at java.base/jdk.internal.module.ModulePath.readModule(ModulePath.java:350) at java.base/jdk.internal.module.ModulePath.scan(ModulePath.java:237) at java.base/jdk.internal.module.ModulePath.scanNextEntry(ModulePath.java:190) at java.base/jdk.internal.module.ModulePath.findAll(ModulePath.java:166) at jdk.jdeps/com.sun.tools.jdeps.JdepsConfiguration$Builder.build(JdepsConfiguration.java:521) 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) Caused by: java.lang.module.InvalidModuleDescriptorException: Package com.alibaba.fastjson2.support not found in module at java.base/jdk.internal.module.ModuleInfo.invalidModuleDescriptor(ModuleInfo.java:1212) at java.base/jdk.internal.module.ModuleInfo.doRead(ModuleInfo.java:330) at java.base/jdk.internal.module.ModuleInfo.read(ModuleInfo.java:129) at java.base/jdk.internal.module.ModulePath.readJar(ModulePath.java:652) at java.base/jdk.internal.module.ModulePath.readModule(ModulePath.java:331) ... 8 more

原提问者GitHub用户xfl12345

展开
收起
山海行 2023-07-05 17:59:57 117 0
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在使用 jdeps 工具进行依赖分析时,可能会出现各种错误和警告信息。这些错误和警告信息通常会提示您的应用程序存在哪些依赖关系问题,以及如何解决这些问题。以下是一些常见的 jdeps 错误和警告信息,以及可能的解决方案:

    jdeps 报 "not found" 错误
    这种错误通常表示 jdeps 无法找到指定的类或包。您可以通过设置类路径或模块路径来解决这个问题。例如,如果您的类路径中缺少某个类或包,您可以使用 -classpath 选项指定该类或包所在的路径:

    Copy
    jdeps -classpath /path/to/missing/class myapp.jar
    如果您使用的是模块化程序,那么您可以使用 -p 选项指定模块路径:

    Copy
    jdeps -p /path/to/modules myapp.jar
    jdeps 报 "cyclic dependence" 错误
    这种错误通常表示您的应用程序存在循环依赖关系。您可以通过重新设计应用程序或模块来解决这个问题。例如,如果模块 A 依赖于模块 B,而模块 B 又依赖于模块 A,那么您可以将共享的代码提取到单独的模块中,以避免循环依赖关系。

    jdeps 报 "unresolved dependency" 错误
    这种错误通常表示您的应用程序依赖于某个类或包,但是 jdeps 无法找到该类或包的定义。您可以通过添加所需的依赖关系来解决这个问题。例如,如果您的应用程序依赖于某个类或包,但是 jdeps 报告找不到该类或包,那么您可以将该类或包所在的 JAR 文件或模块添加到类路径或模块路径中。

    jdeps 报 "deprecated API" 警告
    这种警告通常表示您的应用程序使用了已经过时的 API。您可以通过查找替代 API 或更新的版本来解决这个问题。例如,如果您的应用程序使用了已经过时的 API,您可以查找替代 API 或更新的版本,并将其用于您的应用程序。

    2023-07-30 21:04:18
    赞同 展开评论 打赏
  • 这个错误是由于在编译fastjson2的时候,缺少com.alibaba.fastjson2.support这个包导致的。可以在pom.xml文件中添加该包的依赖,或者将该包添加到项目的classpath中。另外,还需要确保该包的版本与fastjson2的版本相匹配。

    2023-07-09 10:18:30
    赞同 展开评论 打赏
  • 问题已修复,请用新版本

    https://github.com/alibaba/druid/releases/tag/1.2.14

    原回答者GitHub用户wenshao

    2023-07-06 10:38:32
    赞同 展开评论 打赏
  • 根据报错信息,您的jdeps命令在分析fastjson2-2.0.14.jar时遇到了错误。错误的原因是在模块描述符中找不到com.alibaba.fastjson2.support包,导致无法读取该模块。

    这种情况可能会影响进一步精简打包,因为jdeps工具需要正确的模块描述符来分析和解析模块间的依赖关系。

    要解决这个问题,您可以尝试以下几个步骤:

    1. 确保您使用的Java版本与fastjson2-2.0.14.jar相兼容。可能需要更新或降级您的Java版本。
    2. 检查fastjson2-2.0.14.jar是否完整且没有被损坏。可以尝试重新下载该jar文件并替换原来的文件。
    3. 如果可能的话,尝试升级fastjson库的版本,以便使用较新的版本,其中可能已修复了此问题。
    4. 如果上述步骤都没有解决问题,您可以尝试联系fastjson库的维护者或社区,以获取更多支持和帮助。

    请注意,这只是一些常见的解决方法,具体解决方案可能因您的环境和应用程序的特定情况而异。

    2023-07-05 19:14:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载