gpt4 book ai didi

java - 使用依赖项运行可执行 jar 时出现问题

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:24 25 4
gpt4 key购买 nike

嘿,所以我一直在做一个项目,我希望能够从命令行作为可执行 jar 运行。我已经能够使用 Mavens assembly:single 命令创建具有依赖关系的 jar。我的 pom 看起来像这样。

<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.3</version>
<configuration>
<archive>
<manifest>
<mainClass>org.openmetadata.main.OmadUpdate</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>

构建成功并创建 jar omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar。我在命令行中转到我的项目目标文件夹并键入

java -jar omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar

我也试过

java -cp omad-update-0.0.1-SNAPSHOT-jar-with-dependencies.jar org.openmetadata.main.OmadUpdate

不幸的是,在每种情况下我都会得到一个 java.lang.NoClassDefFoundError: org/openmetadata/main/OmadUpdate。我很困惑,因为我知道我的主类在包 org.openmetadata.main 中,但找不到。我发现这特别令人困惑,因为在我的 pom 中我将该类指定为我的主类。我曾尝试将主类的名称更改为 src.main.java.org.openmetadata.main.OmadUpdate 和简单的 OmadUpdate,但似乎都没有效果。感谢您提前提供帮助。

最佳答案

我在上面的 list 中没有看到 Class-Path 条目,但是您的文件名很长,提到了依赖项。如果此 jar 文件中有您的程序所依赖的 jar,则必须在 Class-Path 部分中枚举它们。参见 Adding Classes to the JAR File's Classpath了解更多详情。

关于java - 使用依赖项运行可执行 jar 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9913531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com