直接运行jar包找不到主类和没有主清单属性的解决

 

在正确编译好java程序之后,打包,然后在命令行输入java -jar ,却弹出没有主清单属性或者找不到或无法加载主类。

直接运行jar包找不到主类和没有主清单属性的解决_第1张图片

一检查,我的path环境变量都是对的呀?java命令,程序也可以执行啊?怎么java -jar就不行了呢?

解决办法就是,修改MANIFEST文件。


WinRAR打开jar包,找到里面的MANIFEST.MF文件。

直接运行jar包找不到主类和没有主清单属性的解决_第2张图片


然后发现,白花花的一片咧,肯定是需要添些东西的。

我打包的是名为draw的包,里面有三个class,其中print.class是需要运行的。

.

直接运行jar包找不到主类和没有主清单属性的解决_第3张图片

于是,我在MANIFEST.MF文件里面多添加了一行:Main-Class: draw.print。

Main-Class:为固定前缀(原谅我用英语方面的说法解释下)

draw.print 为所要运行的类名,别忘了带上前面的packege的名字。

至此,问题解决。


说说出现没有主清单找不到或无法加载主类的情况吧

没有主清单

jar包里面肯定有MANIFEST.MF文件的,但如果像我之前的那样,

直接运行jar包找不到主类和没有主清单属性的解决_第4张图片,里面什么的都没有的话,在cmd中java -jar,就显示了没有主清单。

找不到或无法加载主类:

在MANIFEST.MF文件中添加了Main-Class:后,什么都不填写或者填写的class名错误,就会出现找不到或无法加载主类。

直接运行jar包找不到主类和没有主清单属性的解决_第5张图片直接运行jar包找不到主类和没有主清单属性的解决_第6张图片

这两种情况,都显示了无法加载主类。

第二个图,出错的原因是如果打包的是pakage或者总的工程文件,一定要在前面添加pakage名字,如:draw.print,无需class后缀。

你可能感兴趣的:(java)