繁体   English   中英

无法从命令行运行 jar 文件:“没有主要清单属性”

[英]Failing to run jar file from command line: “no main manifest attribute”

我正在尝试从控制台运行 jar 文件:

java -jar ScrumTimeCaptureMaintenence.jar

并且我收到错误:

无法执行 jar- 文件:“没有主清单属性”

正如你所看到的,我实际上有一个主文件,它在 eclipse 中运行良好:

主要方法在类中

我需要做什么才能从命令行成功运行这个文件?

尝试运行

java -cp ScrumTimeCaptureMaintenence.jar Main

在 Eclipse 中: right-click您的项目 -> Export -> JAR file

在带有选项的最后一页(当没有Next按钮处于活动状态时)您将看到Main class:设置Main class: 您需要在此处设置默认执行的main方法的类(例如双击 JAR 文件时)。

-jar选项仅在 JAR 文件是可执行 JAR 文件时才有效,这意味着它必须有一个包含Main-Class属性的清单文件。

如果它不是可执行的 JAR,那么您需要使用以下内容运行该程序:

java -cp app.jar com.somepackage.SomeClass

其中com.somepackage.SomeClass是包含运行程序的main方法的类。

单击“导出”后,您可以选择“可运行的 JAR 文件”。

您可以在“启动配置”中指定您的主驱动程序

在此处输入图片说明在此处输入图片说明

首先从 Eclipse 运行您的应用程序以创建启动配置。 然后只需按照以下步骤操作:

  1. 从菜单栏的文件菜单中,选择导出
  2. 展开Java节点并选择Runnable JAR file 单击下一步
  3. Runnable JAR File Specification页面中,选择用于创建可运行 JAR 的“Java 应用程序”启动配置。
  4. 导出目标字段中,键入或单击浏览以选择 JAR 文件的位置。
  5. 选择合适的库处理策略。
  6. 或者,您还可以创建一个 ANT 脚本来快速重新生成以前创建的可运行 JAR 文件。

来源:在 Eclipse.org 创建一个新的可运行 JAR 文件

将您的 Java 项目导出为Runnable Jar 文件而不是 Jar。

我将我的项目导出为Jar ,即使 Manifest 存在,它也给了我jar 中没有主要清单属性的错误即使 Manifest 文件存在于 Jar 中。 然而,清单文件中只有一个条目,它没有指定要执行的 Main 类或函数或任何依赖的 JAR

将其导出为Runnable Jar 文件后,它按预期工作。

您需要在 Jar 的 Manisfest.mf 文件中包含“Main class”属性

例如:主类:MyClassName

第二件事,要在您的 jar 中添加清单文件,您可以在工作区文件夹中手动创建文件,并在 Eclipse 项目资源管理器中刷新。

导出时,Eclipse 将创建一个包含您的清单的 Jar。

干杯!!

如果你使用 Spring boot,你应该在你的pom.xml添加这个插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM