无法从命令行运行jar文件:“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
方法的类。
单击“导出”后,可以选择“Runnable JAR文件”。
您可以在“启动配置”中指定主驱动程序
首先从eclipse运行您的应用程序以创建启动配置。 然后按照以下步骤操作:
- 从菜单栏的“ 文件”菜单中,选择“ 导出” 。
- 展开Java节点并选择Runnable JAR文件 。 单击下一步 。
- 在Runnable JAR文件规范页面中,选择用于创建可运行JAR的“Java Application”启动配置。
- 在“ 导出目标”字段中,键入或单击“ 浏览”以选择JAR文件的位置。
- 选择适当的库处理策略。
- 或者,您也可以创建ANT脚本以快速重新生成以前创建的可运行JAR文件。
来源:在Eclipse.org上创建一个新的Runnable JAR文件
将Java Project导出为Runnable Jar文件而不是Jar。
我将我的项目导出为Jar ,即使Manifest存在,它也给了我错误,jar中没有主要的清单属性,即使Jar中存在Manifest文件。 但是,Manifest文件中只有一个条目,它没有指定要执行的Main类或Function或任何依赖JAR的
将其导出为Runnable Jar文件后,它按预期工作。
您需要在Jar中的Manisfest.mf文件中包含“Main class”属性
例如:Main-Class:MyClassName
第二件事,要在jar中添加Manifest文件,您可以在工作区文件夹中手动创建文件,并在Eclipse Project explorer中刷新。
在导出时,Eclipse将创建一个包含清单的Jar。
干杯!!
如果您使用的是Spring引导,则应在pom.xml
添加此插件:
org.springframework.boot spring-boot-maven-plugin