Jar包运行报错:no main manifest attribute问题排查与解决求助
解决Jar包"no main manifest attribute"错误
错误原因
问题核心不是要手动创建META-INF目录(jar命令会自动生成这个目录和MANIFEST.MF文件),而是你的manifest.txt格式不符合要求:manifest文件的最后一行必须是空行,否则JVM会忽略最后一行的属性(也就是你写的Main-Class: Main)。
解决方法
方法一:修复manifest.txt后重新打包
- 打开你的
manifest.txt,在Main-Class: Main这一行的下方添加一个空行(光标移到该行末尾,按回车即可) - 重新执行打包命令:
jar cfm myfirstjarfile.jar manifest.txt Main.class - 运行Jar包测试:
java -jar myfirstjarfile.jar
方法二:无需手动创建manifest文件,直接命令行指定主类
如果不想折腾manifest文件的格式,用jar命令的-e参数可以直接指定主类,自动生成符合要求的MANIFEST.MF:
- 确保已经通过
javac Main.java编译出Main.class文件 - 执行打包命令:
这里jar cfe myfirstjarfile.jar Main Main.class-e参数的作用就是指定主类为Main,jar工具会自动处理META-INF目录和MANIFEST.MF的生成 - 运行Jar包:
java -jar myfirstjarfile.jar
验证方式
可以把生成的myfirstjarfile.jar解压,查看META-INF/MANIFEST.MF文件,确认里面存在Main-Class: Main这一行,且格式正确。
内容的提问来源于stack exchange,提问作者Bursting_News
相关产品推荐
相关产品推荐

