【问题标题】:Running a jar file from terminal in ubuntu在 ubuntu 中从终端运行 jar 文件
【发布时间】:2015-07-25 13:25:12
【问题描述】:

我有一个 jar 文件,当我执行时由

 java -jar firstjar.jar

我收到以下错误

错误:jarfile firstjar.jar 无效或损坏

这是我的清单文件

 Manifest-Version: 1.0
 Created-By: 1.7.0_79 (Oracle Corporation)
 Class-Path:mysql-connector-java-5.1.28.jar
 Main-Class:JavaApplication1

jar 文件内容

0 Wed May 13 14:09:06 IST 2015 META-INF/
140 Thu May 14 00:26:26 IST 2015 META-INF/MANIFEST.MF
2917 Wed May 13 13:16:02 IST 2015 JavaApplication1.class

提前致谢!

【问题讨论】:

  • jar tvvf firstjar.jar 的结果是什么?
  • Main-Class 行后面有新行吗?如果没有,请尝试添加一个。我记得我在执行 Main-Class 时遇到了问题,并且在 manifest.mf 文件末尾有一个换行符解决了这个问题。
  • @Elliot 我在我的问题中添加了 jar 文件的内容。
  • @anonymous 我尝试添加新行但仍然出现相同的错误。
  • 首先,您的清单内容需要在冒号后有一个空格。然后,您可以使用自定义清单文件成功创建 jar。然后你就会有一个有效的“可执行”jar。

标签: java ubuntu jar terminal


【解决方案1】:

也许您的 jarfile 以某种方式损坏,可能是由于它的下载或安装方式。

这个问题是manifest文件造成的,因为你这里的每个冒号后面没有加空格,应该是:

Manifest-Version: 1.0 
Created-By: 1.7.0_79 (Oracle Corporation) 
Class-Path: mysql-connector-java-5.1.28.jar 
Main-Class: JavaApplication1 

在 Main-Class 之后必须有一个空行,请参见此处https://docs.oracle.com/javase/tutorial/deployment/jar/modman.html

【讨论】:

  • 先生,您能否解释一下您所说的损坏是什么意思,因为从未听说过损坏的 w.r.t jar 文件这个术语。
  • 我认为这实际上是最有可能的答案,我会尝试澄清它,因为似乎存在沟通故障。 (我怀疑英语不是提问者的母语。)
  • @Alex 这不是最有可能的答案,实际上应该是评论。另一方面,如果您认为是,请验证他的观点。
  • jar 文件有三种可能的失败情况,第一种是它是为不同的 JVM 构建的,在这种情况下,它会给出不同的错误消息。第二个是类路径有问题,在这种情况下,它会告诉你有一些类无法加载。这里的案例说明它不是有效的java,因为它已损坏。 “无效或损坏的 jar 文件”。你造了这个罐子吗?它来自哪里?
  • @Alex Sir ,这在明确提到错误“INVALID OR CORRUPT JARFILE”的原因方面是多余的。Instaed,我想知道如何解决这个问题。
猜你喜欢
  • 2016-07-01
  • 2021-11-12
  • 2016-09-23
  • 2014-04-12
  • 2023-03-06
  • 2019-06-11
  • 1970-01-01
  • 1970-01-01
  • 2016-10-04
相关资源
最近更新 更多