gpt4 book ai didi

java - 我已经使用 maven 构建了一个 jar 文件,但无法在 linux 中使用 "java"命令执行它

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:12 25 4
gpt4 key购买 nike

在此先感谢您的帮助!

澄清我的问题:

1) 我有一个 ec2-instance 并编写了一个 java 程序。我将其命名为 HelloWorld.java

2) 我使用 Maven 为 HelloWorld.java 构建了一个名为 hello.jar 的 jar 文件。我使用了一个带有一些随机依赖项的随机 pom 文件,因为我认为 HelloWorld 除了给 jar 文件命名之外不需要 pom 文件。

3) 我一直在使用 spark-submit 脚本来提交应用程序,但是我现在尝试运行的应用程序没有涉及 spark,我也想将它部署在不涉及 spark 的环境中. 所以我想使用“java”命令提交应用程序。我不确定是否应该提交 jar 文件、.java 文件等。我已经看到我必须提供它是一个 .class 参数。我不确定要放什么?

4) 我的下一步是拥有一个具有一组 4 个 jars 依赖项的 java 程序。我很想知道如何将 4 个 jar 文件添加为“java”命令的参数。

编辑 @Ascalonian

我尝试了 John Skeets 的回答,当我尝试 jar 命令时出现了这个异常:

java.io.IOException: invalid header field
at java.util.jar.Attributes.read(Attributes.java:393)
at java.util.jar.Manifest.read(Manifest.java:182)
at java.util.jar.Manifest.<init>(Manifest.java:52)
at sun.tools.jar.Main.run(Main.java:151)
at sun.tools.jar.Main.main(Main.java:1149)

EDIT 2 当我重新创建解决方案时,John Skeet 的回答最终起作用了。不知道发生了什么变化,但它奏效了。感谢您的帮助!

谢谢!

谢谢!

最佳答案

您需要使您的 jar 成为可执行文件并向其添加 list :

像这样:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>theMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>

引用:How can I create an executable JAR with dependencies using Maven?

关于java - 我已经使用 maven 构建了一个 jar 文件,但无法在 linux 中使用 "java"命令执行它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27971637/

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