【问题标题】:Failed to load Main-Class manifest attribute from myFile.jar error无法从 myFile.jar 错误加载主类清单属性
【发布时间】:2016-09-26 18:41:39
【问题描述】:

我使用 IBM 的 Relational Application Developer (RAD) 作为我的 IDE。我的项目中有一个 Java 类,我将其命名为 extract.java。我有几个与我的项目相关的库文件和资源文件。我使用 IDE 将我的项目导出为 jar 文件,并使用以下查询在 solaris 环境中通过命令行运行它:

$java -jar myFile.jar 

我收到以下错误:

无法从 myFile.jar 加载 Main-Class 清单属性

我看到了需要更新清单文件的建议。我不确定这是什么意思,因为我是 java 新手,任何帮助都会很棒。

PS:当我在 Windows 机器上从 IDE 中将类作为 Java 应用程序运行时没有错误。

【问题讨论】:

    标签: java jar solaris rad


    【解决方案1】:

    为了使 JAR 成为 RAD 中的可执行 JAR,请执行以下步骤:

    1. 右键单击项目并选择导出...
    2. 选择 Java > Runnable JAR 文件并单击下一步。
    3. 在 Launch Configuration 字段中,选择包含 public static void main(String[] args) 方法的 Java 类。
    4. 指定目标位置。
    5. 最后,定义项目中的库(如果有)应如何打包到 JAR 中。
    6. 点击完成。

    这应该使用正确的 Main-class 标头创建 Manifest 文件。使用 java -jar 命令运行 JAR 以确保其正常工作。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      在你的jar文件中,你需要添加或修改你jar的manifest对应的文件/META-INF/MANIFEST.MF添加属性Main-Class

      Main-Class: my.package.MyClass
      

      假设my.package.MyClass 是当您使用java -jar myFile.jar 启动jar 文件时要调用main 方法的类的完全限定名称

      【讨论】:

      • 你能帮我理解我在哪里添加这个清单文件吗?它是在我导出之前进入 RAD 还是进入 solaris 环境?如果我需要在导出之前创建它,这个文件在哪里?如果之后,我假设它与 jar 位于同一目录中?
      • 它在你的 jar 文件中/META-INF/MANIFEST.MF
      • 请检查我附加到问题的 jar 文件。我不确定我将如何更新?我用记事本++打开了它。我应该用另一个工具来打开它吗?此外,为我的项目查找运行配置,并将 MyClass 设置为主类。我认为它会在创建 jar 文件时获取这些信息
      • 实际上 jar 是一个 zip 存档,其中包含所有类和资源文件,因此您需要在 zip 中添加一个新文件
      • 所以在我的项目中添加一个名为 META-INF/MANIFEST.MF 的文件,然后再将其导出为 jar 文件?
      猜你喜欢
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2018-09-24
      • 2012-03-16
      • 2013-06-03
      相关资源
      最近更新 更多