我正在尝试从控制台运行一个 jar 文件:
java -jar ScrumTimeCaptureMaintenence.jar
我得到了错误:
无法执行 jar- 文件:“没有主要清单属性”</p>
正如你所看到的,我实际上有一个主文件,它在 Eclipse 中运行良好:
我需要做什么才能从命令行成功运行此文件?
尝试运行
java -cp ScrumTimeCaptureMaintenence.jar Main
在 Eclipse 中:right-click
在您的项目上 -> Export
->JAR file
在带有选项的最后一页(当没有Next
按钮处于活动状态时),您将看到Main class:
. 您需要在此处设置main
默认应执行的方法的类(如双击 JAR 文件时)。
仅当 JAR 文件是可执行 JAR 文件时,该-jar
选项才有效,这意味着它必须具有包含Main-Class
属性的清单文件。
如果它不是可执行的 JAR,那么您需要使用以下内容运行该程序:
java -cp app.jar com.somepackage.SomeClass
wherecom.somepackage.SomeClass
是包含main
运行程序的方法的类。
单击“导出”后,您可以选择“可运行的 JAR 文件”。
您可以在“启动配置”中指定您的主驱动程序
首先从 Eclipse 运行您的应用程序以创建启动配置。然后只需按照以下步骤操作:
- 从菜单栏的文件菜单中,选择导出。
- 展开Java节点并选择Runnable JAR file。单击下一步。
- 在 可运行JAR 文件规范页面中,选择“Java 应用程序”启动配置以用于创建可运行 JAR。
- 在导出目标字段中,键入或单击浏览以选择 JAR 文件的位置。
- 选择适当的库处理策略。
- 或者,您还可以创建一个 ANT 脚本来快速重新生成以前创建的可运行 JAR 文件。
来源:在 Eclipse.org创建一个新的可运行 JAR 文件
将您的 Java 项目导出为Runnable Jar 文件而不是 Jar。
我将我的项目导出为Jar,即使 Manifest 存在,它也给了我错误no main manifest attribute in jar即使 Manifest 文件存在于 Jar 中。但是 Manifest 文件中只有一个条目,它没有指定要执行的 Main 类或函数或任何依赖的 JAR
将其导出为Runnable Jar 文件后,它按预期工作。
您需要在 Jar 的 Manisfest.mf 文件中包含“主类”属性
例如:主类: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>