问题标签 [jdeps]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
284 浏览

java - 将 jdeps 与 REGEX 一起使用

我可以使用 jdeps 获取依赖项列表: jdeps myjar.jar工作正常。

尝试在输出中排除特定包: jdeps -f 'java.io' myjar.jar- 这java.io从输出中排除包

最后,我想使用正则表达式排除所有以名称“java”开头的包:

  • jdeps -f 'java' myjar.jar-> 不起作用(不过滤“java”包)
  • jdeps -f '/java/i' myjar.jar-> 不起作用(不过滤“java”包)
  • jdeps -f '^java' myjar.jar-> 不起作用(不过滤“java”包)

有人可以帮我过滤与给定模式匹配的所有包吗?

0 投票
0 回答
40 浏览

jar - 如何找到jar文件的jar依赖

我正在尝试使用 jdeps 列出 100 多个 jar 文件的依赖项,但是,当我运行 'jdeps -recursive -s -cp 'path/*' jarFile.jar' 时,一些依赖项是'找不到'的。有没有办法确保 Jdeps 找到所有依赖项,如果没有,是否有一个很好的工具来查找 jar 文件的 jar 依赖项?

0 投票
2 回答
694 浏览

java - 如何使用 Maven 和 NetBeans 将应用程序打包到 JPMS 模块中?

我的目标是使用 jlink 将应用程序打包到与自定义 JRE 捆绑在一起的模块化运行时映像中。我的应用程序是一个简单的“hello world”Java 标准版应用程序,它依赖于 Guava。我使用 JDK 11。

基本上,我尝试通过 Baeldung 重现本教程,但使用 NetBeans、Maven 来管理依赖项以及使用模块系统构建的Maven 编译器插件版本 3.8.1。

目录结构:

在此处输入图像描述

module-info.java 文件:

控制器.java:

pom.xml:

但它创建编译的类,没有罐子或模块。所以我不能更进一步(用jdeps分析jar的模块,然后使用jlink)。我一定遗漏了一些明显的东西,但是什么?

0 投票
1 回答
383 浏览

json - Gson 的意外行为

我开发了一个存储来自设备的数据的小型应用程序:我选择以 JSON 格式存储数据,并且数据的序列化/反序列化工作得很好,即使它涉及我创建的一些自定义类型......但只有我在 IDE 中工作(Eclipse,就此而言)。

但是,当我导出可运行的 JAR 文件时,数据的反序列化会遇到某种问题,因为软件总是抛出这个异常:

我以为我会遇到自定义类型的问题,而不是内置类型。在这一点上,我发现了两件事:

  • 如果我使用完整的 JRE 9 运行 JAR 文件,则不会引发异常:我仔细检查了使用 Jlink.exe 创建的自定义 JRE 中包含的模块,并且所有内容都正确包含。我仍然想使用更小的 JRE,所以我还没有进一步调查(我想这解释了为什么在 IDE 中它可以完美运行)
  • 我向 Gson 对象添加了一个自定义反序列化器(见下文),使用它我只是手动将 JSON 字符串转换为有效数据,并且避免了 LocalDateTime 类上的异常......但异常再次出现在另一个类上,这个时间定制一个。

在这一点上,我想我可以简单地为导致问题的每种数据类型添加一个反序列化器,但我想知道为什么这个问题不会在完整的 JRE 中发生,以及为什么较小的 JRE 会导致这个问题,即使所有模块必需的都包括在内。也许值得一提的是,我没有向保存数据的 Gson 对象添加自定义序列化程序,它全部按照 Gson 默认进行序列化。

LocalDateTime解串器:

Jdeps.deps 模块列表:


收到答案后,我在这里打开了一个问题。

0 投票
1 回答
1285 浏览

java - jdeps 返回“未找到”

我正在关注本教程,该教程试图通过构建最小的 JVM 来最小化 JVM 内存占用。

当我跑步时jdeps -s myjar.jar,我得到:

在本教程中,他通过运行另一个命令解决了这个问题。

我试过这个,但我得到了相同的结果。

如何正确运行?

0 投票
1 回答
57 浏览

java-9 - 如何使用拼图助手命令从 lib/ 目录中获取所有可能包的列表?

我目前没有构建模块化应用程序。

但是我已经看到 jdeps/jdeprscan 可以扫描到 jar 包中。

有没有办法使用上述任何命令打印所有 jar 中包含的所有lib/

0 投票
0 回答
25 浏览

java - Jdeps 命令报告包为找到,然后是相同的包为未找到

我正在运行的 jdeps 命令是“jdeps -cp ' classpath ' -R ' path-to-package '”。以下是输出:输出

为链接道歉。所以不会让我嵌入图像。

0 投票
2 回答
622 浏览

java - 尝试注入 module-info.java 时找不到模块

我有一个使用 Apache 的 PDFBox 的 JavaFX 项目。我想使用 JLink 来构建它的 JRE,但我不能,因为 PDFBox 是一个自动模块。因此,我试图在其中注入一个模块信息文件。

我使用 jdeps 生成了这个模块信息文件:

在 jar 的文件夹中,我运行: javac --patch-module org.apache.pdfbox=pdfbox-2.0.20.jar module-info.java

但后来我得到了

我怎样才能解决这个问题?有没有更好的解决方法?提前致谢。

项目:https ://github.com/ajsaraujo/mre-automodule

0 投票
1 回答
1396 浏览

java - 列出依赖项时未找到 JDEPS 模块异常

我一直在使用 JLink 为各种 Spring Boot 应用程序创建最小的 JRE。通过反复试验找出所需的模块,我已经成功地手动完成了这项工作。成功完成此操作后,我一直在尝试使用 JDeps 自动化此过程。

第一次尝试是为我的应用程序扫描构建的 Jar。我正在使用 Java 14 jdeps 分析 Java 11 代码库。

jdeps --class-path BOOT-INF/classes --module-path BOOT-INF/lib/,${JAVA_HOME}/jmods --add-modules=ALL-MODULE-PATH --list-deps target/camel-account-sapi-0.0.2-SNAPSHOT.jar

这会导致几个未找到的依赖项。

添加--ignore-missing-deps更完整但不完整的结果:

接下来我使用java -Djarmode=layertools -jar ./target/camel-account-sapi-0.0.2-SNAPSHOT.jar extract

这给了我包含所有 150 个 JAR 依赖项的 BOOT-INF/lib 文件夹。因此,我尝试使用一些额外的选项来运行与以前类似的 JDeps 命令: jdeps --module-path temp/BOOT-INF/lib/,${JAVA_HOME}/jmods --add-modules=ALL-MODULE-PATH --multi-release 11 --list-deps --ignore-missing-deps --recursive --compile-time temp/BOOT-INF/lib/*

然而,这会导致异常

我注意到 /lib 文件夹中的一些 JAR 可以成功分析,因此我编写了一个 Bash 脚本来在每个 /lib jar 上运行相同的命令,同时忽略异常。150 个模块中的 15 个无法分析,因为Module not found来自其他 135 个模块的所需模块的结果列表非常接近。它只缺少一个必需的模块jdk.crypto.ec并找到所有其他模块:

java.sql,java.security.jgss,java.logging,java.xml,java.compiler,jdk.unsupported,java.transaction.xa,java.rmi,java.management,java.instrument,java.naming,java.base,java.datatransfer,jdk.httpserver,java.scripting,java.desktop,java.prefs

我走错方向了吗?或者可以/应该做些什么来解决这些缺失的模块问题?我相信,例如,上面的“缺失”模块java.annotation可能存在于其他 JAR 之一中?由于其他 15 个失败的 jdeps 命令中的一些,我认为情况更是如此。

0 投票
2 回答
251 浏览

java - 使用 jdeps + jlink + jpackage 构建 windows 自包含应用程序后的 EXCEPTION_ACCESS_VIOLATION

我正在尝试构建一个用于windows使用jdeps++的捆绑包(自包含应用程序jlinkjpackage

在 mac 上,使用相同的过程,我设法通过结合使用+ +的脚本为该项目图形编辑器创建(遵循JPackageScriptFX作为参考)一个完全工作的独立“.app” 。mavenjdepsjlinkjpackage

我希望在安装 wix 3.x 后,相同的 ++ 配置可以在Windowsjdeps运行。jlinkjpackage

该过程运行良好并生成安装程序,但不幸的是,当我启动“.exe”文件时出现以下错误。

  • 可以在此处找到有关我使用的配置的更多详细信息。
  • 我使用的“bat”脚本是这个:build_app.bat
  • maven install在 Windows上的主项目上运行 a可以复制问题。

完整的“.log”打印可以在这里找到。