问题标签 [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.
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”包)
有人可以帮我过滤与给定模式匹配的所有包吗?
jar - 如何找到jar文件的jar依赖
我正在尝试使用 jdeps 列出 100 多个 jar 文件的依赖项,但是,当我运行 'jdeps -recursive -s -cp 'path/*' jarFile.jar' 时,一些依赖项是'找不到'的。有没有办法确保 Jdeps 找到所有依赖项,如果没有,是否有一个很好的工具来查找 jar 文件的 jar 依赖项?
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)。我一定遗漏了一些明显的东西,但是什么?
json - Gson 的意外行为
我开发了一个存储来自设备的数据的小型应用程序:我选择以 JSON 格式存储数据,并且数据的序列化/反序列化工作得很好,即使它涉及我创建的一些自定义类型......但只有我在 IDE 中工作(Eclipse,就此而言)。
但是,当我导出可运行的 JAR 文件时,数据的反序列化会遇到某种问题,因为软件总是抛出这个异常:
我以为我会遇到自定义类型的问题,而不是内置类型。在这一点上,我发现了两件事:
- 如果我使用完整的 JRE 9 运行 JAR 文件,则不会引发异常:我仔细检查了使用 Jlink.exe 创建的自定义 JRE 中包含的模块,并且所有内容都正确包含。我仍然想使用更小的 JRE,所以我还没有进一步调查(我想这解释了为什么在 IDE 中它可以完美运行)
- 我向 Gson 对象添加了一个自定义反序列化器(见下文),使用它我只是手动将 JSON 字符串转换为有效数据,并且避免了 LocalDateTime 类上的异常......但异常再次出现在另一个类上,这个时间定制一个。
在这一点上,我想我可以简单地为导致问题的每种数据类型添加一个反序列化器,但我想知道为什么这个问题不会在完整的 JRE 中发生,以及为什么较小的 JRE 会导致这个问题,即使所有模块必需的都包括在内。也许值得一提的是,我没有向保存数据的 Gson 对象添加自定义序列化程序,它全部按照 Gson 默认进行序列化。
LocalDateTime
解串器:
Jdeps.deps 模块列表:
收到答案后,我在这里打开了一个问题。
java - jdeps 返回“未找到”
我正在关注本教程,该教程试图通过构建最小的 JVM 来最小化 JVM 内存占用。
当我跑步时jdeps -s myjar.jar
,我得到:
在本教程中,他通过运行另一个命令解决了这个问题。
我试过这个,但我得到了相同的结果。
如何正确运行?
java-9 - 如何使用拼图助手命令从 lib/ 目录中获取所有可能包的列表?
我目前没有构建模块化应用程序。
但是我已经看到 jdeps/jdeprscan 可以扫描到 jar 包中。
有没有办法使用上述任何命令打印所有 jar 中包含的所有包lib/
?
java - Jdeps 命令报告包为找到,然后是相同的包为未找到
我正在运行的 jdeps 命令是“jdeps -cp ' classpath ' -R ' path-to-package '”。以下是输出:输出
为链接道歉。所以不会让我嵌入图像。
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
但后来我得到了
我怎样才能解决这个问题?有没有更好的解决方法?提前致谢。
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 命令中的一些,我认为情况更是如此。
java - 使用 jdeps + jlink + jpackage 构建 windows 自包含应用程序后的 EXCEPTION_ACCESS_VIOLATION
我正在尝试构建一个用于windows
使用jdeps
++的捆绑包(自包含应用程序jlink
)jpackage
。
在 mac 上,使用相同的过程,我设法通过结合使用+ +的脚本为该项目图形编辑器创建(遵循JPackageScriptFX作为参考)一个完全工作的独立“.app” 。maven
jdeps
jlink
jpackage
我希望在安装 wix 3.x 后,相同的 ++ 配置可以在Windows上jdeps
运行。jlink
jpackage
该过程运行良好并生成安装程序,但不幸的是,当我启动“.exe”文件时出现以下错误。
- 可以在此处找到有关我使用的配置的更多详细信息。
- 我使用的“bat”脚本是这个:build_app.bat。
maven install
在 Windows上的主项目上运行 a可以复制问题。
完整的“.log”打印可以在这里找到。