线程" main"中的例外情况java.lang.NullPointerException:尝试运行jar文件时

时间:2012-02-15 04:45:19

标签: java exception jar nullpointerexception

当我运行命令java -jar MyJar.jar时,我收到以下错误:

Exception in thread "main" java.lang.NullPointerException
    at sun.launcher.LauncherHelper.getMainClassFromJar(Unknown Source)
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

这些错误是什么?可能是我得到这些错误的原因是什么?

在我将包装在jar文件中之前,场景是:

enter image description here

然后我输入以下内容将上述文件与包装一起打包:

jar -cf MyJar.jar .\Design\*.class .\InterfaceImplementation\*.class .\Interfaces\*.class .\messenger\*.class Manifest.MF RemoteMethodImpl_Stub.class

注意:当我解压缩jar文件时,有一个名为META-INF的文件夹,其中也包含MANIFEST.MF,但不包含主类的名称。

我的MANIFEST.MF的内容:Main-Class : messenger.Messenger 也尝试使用正斜杠

2 个答案:

答案 0 :(得分:1)

错误显然是由于清单中缺少主类...您可以在清单中指定主类,如此

Main-Class: com.Main

答案 1 :(得分:1)

要添加jar不足以将其包含在文件中,您必须使用m选项,例如

jar cmf myManifestFile myFile.jar *.class

根据jar documentation。选项mf的顺序必须与MANIFEST文件名称和jar文件的参数顺序相匹配。

同时考虑此警告:现有清单文件必须以新行字符结尾。如果清单文件的最后一行没有以换行符结尾,则jar不会解析清单文件的最后一行。