我已经安装了一个应用程序,当我尝试运行它(它是一个可执行的 jar)时没有任何反应。当我从命令行运行它时:
java -jar“app.jar”
我收到以下消息:
没有主要清单属性,在“app.jar”中
通常,如果我自己创建了程序,我会在清单文件中添加一个主类属性。但在这种情况下,由于文件来自应用程序,我不能这样做。我还尝试提取 jar 以查看是否可以找到主类,但是有很多类并且它们的名称中都没有“main”一词。必须有办法解决这个问题,因为该程序在其他系统上运行良好。
原文由 Ewoud 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,有点奇怪,看到你运行
java -jar "app"
而不是java -jar app.jar
其次,要使 jar 可执行…您需要将一个名为 META-INF/MANIFEST.MF 的文件 jar
文件本身应该(至少)有这个衬垫:
其中
com.mypackage.MyClass
是持有 public static void main(String[] args) 入口点的类。请注意,有多种方法可以使用 CLI、Maven、Ant 或 Gradle 完成此操作:
对于 CLI ,将执行以下命令:(tks @dvvrt )
对于 Maven ,类似于以下代码片段的内容应该可以解决问题。请注意,这只是插件定义,而不是完整的 pom.xml :
此插件的最新文档:请参阅 https://maven.apache.org/plugins/maven-jar-plugin/
(选择适合您项目的
<version>
。)对于 Ant ,下面的代码片段应该有所帮助:
学分迈克尔尼曼德 -
对于 摇篮: