问题标签 [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 和战争档案
是否可以在 .war 文件上运行 Jdeps?
尝试时出现此错误:
java - 由于 MultiReleaseException,jdeps 无法打印模块deps
我们有一个基于 JavaFX 的应用程序,它不是模块化的(有一些原因,涉及到一个遗留库),但我们使用jdeps
and构建了一个自定义运行时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:
的结果
是
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
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
找不到。
我希望你能帮助我。
此致
基督教
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
毫无意义。