问题标签 [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 投票
0 回答
174 浏览

java - Jdeps 和战争档案

是否可以在 .war 文件上运行 Jdeps?

尝试时出现此错误:

0 投票
1 回答
526 浏览

java - 由于 MultiReleaseException,jdeps 无法打印模块deps

我们有一个基于 JavaFX 的应用程序,它不是模块化的(有一些原因,涉及到一个遗留库),但我们使用jdepsand构建了一个自定义运行时jlink

我们最近重写了该应用程序并添加了一些新的依赖项,并删除了其他依赖项。现在正在构建应用程序的脚本在jdeps调用期间突然停止工作。

注意:这发生在 Linux 上——我还没有测试其他操作系统,但我预计不会有另一个结果。

当脚本调用

结果总是

关于这个特定的例外,我找不到太多,到目前为止我发现的一切都不适用于我们的情况。

为了不等待构建达到这一点,我让程序在执行之前打印出命令并在终端上使用它。然后它变得有点奇怪:

为什么突然我得到一个不同的例外?现在哪一个是正确的?我没有任何线索。
事实上,包含的jarorg.slf4j只有自动模块名称。

我真的不知道,我应该用很少的信息做什么......如果其他人可以指出某事,我会很高兴。

谢谢,丹尼尔

PS:以下代码打印命令并执行它:

他们似乎真的创造了不同的结果......

PPS:如果我删除--multi-release部分,我会得到一个不同的错误,即jackson多版本,但我需要指定我想要的......


编辑#1

在 pom 文件中,我们有以下 deps

产生以下 JAR 文件(减去我们自己的):

使用的 Java 版本是Bell Soft 的 Full Liberica JDK 17,我们使用了自 14 或 15 以来的所有最新版本,在重建 UI之前它运行良好。


编辑#2:

的结果

0 投票
2 回答
209 浏览

java - 未找到 Jdeps 模块 java.annotation

我正在尝试使用 jdeps 和 jlink 为 Spring Boot 微服务创建一个最小的 jre,但是当我进入 using jdeps 部分时出现以下错误

我已经尝试了以下命令但没有效果

我已经尝试过使用 java 版本 11、16 和 17 以及不同版本的 Spring Boot。

当我运行 mvn install 时,构建所需的所有依赖项都由 maven-dependency-plugin 插件复制到 target/lib 文件夹

在确定了负责任的依赖项后,我从头开始创建了一个新项目,只用它来隔离错误,但它仍然存在。

起初我尝试使用 gradle,但由于错误仍然存​​在,我将其更改为 mavem,但也没有更改。

当我添加正在请求的指定依赖项时,错误更改为

我的 pom.xml

如果我不需要使用此依赖项,我可以完成所有构建过程,最后我有一个 76mb jre

0 投票
0 回答
38 浏览

java - Java JRE Webdrivermanager 需要哪些模块?

launch4j在一些网络自动化的帮助下,Selenium我创建了一个 exe Webdrivermanager。为此,我创建了一个小的Java Runtime Engine. 为了创建它,我使用 jdeps 来获取所有必需的依赖项:jdeps -s file.jar. 但正如你所看到的,没有找到一个,我认为这会导致我的问题:

我通过以下方式创建了我的JRE(版本 17.0.1):jlink --add-modules jdk.internal.ed,jdk.internal.jvmstat,jdk.internal.le,jdk.internal.opt,jdk.internal.vm.ci,jdk.internal.vm.compiler,jdk.internal.vm.compiler.management,java.base,java.sql --compress=2 --output jre

我在错误文件中得到的错误如下:

我为 Webdrivemanager 拥有的所有代码是:

如果我让它通过我的 JDK 运行,它确实可以工作,所以问题出在 100% 我的 JRE 和Webdrivemanager. 但是不知道为什么jdeps找不到。

我希望你能帮助我。

此致

基督教

0 投票
0 回答
29 浏览

java - 目录上的 jdeps

jdeps在目录上使用它时如何工作?

我基本上正在使用一个结构复杂的 tomcat webapp,在多个位置有许多 jars 和类,我想用jlink.

该目录是一个经典的 tomcat 结构,其中包含多个位置的 jar 和类:

我一直在尝试以多种方式使用 jdeps,但文档并不是很有帮助。下面是返回的东西看起来像我所期望的唯一命令:

这种工作按预期工作,但似乎只考虑了类。没有--print-module-deps我得到一大堆像这样的未知依赖项

即使依赖项已正确安装在/usr/local/tomcat/webapps/ROOT/WEB-INF/lib/org.eclipse.jgit-5.10.0.202012080955-r.jar.

一个明显的结果是,有很多未列出的所需模块,当使用自定义 JRE 执行应用程序时,由于缺少 java 模块而出现错误。澄清一下,如果我包含所有模块,jlink --add-modules ALL-MODULE-PATH一切运行顺利。

编辑

我已经在每个 jar 上测试了运行 jdeps 以添加缺少的模块,即使使用更直接/更有效的方法jdeps会更好。

find . -name "*.jar" -o -name "*.class" | xargs jdeps --print-module-deps --ignore-missing-deps似乎在这个基本用例上起到了作用,但是当应用于更大的 tomcat 项目时,仍然存在运行时异常,所以我认为这使它ignore-missing-deps毫无意义。

在此处输入图像描述