无法使用java -jar命令执行jar文件

我创建了一个jar文件usign maven2 build。 我正在尝试使用以下命令运行该jar文件:

java -jar sample.jar com.app.Test 

Test是具有主要方法的类。 但是我得到了这个例外:

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

任何人都可以帮我解决这个exception并运行jar文件吗?

提前致谢。

如果要运行Test类,则应该使用

  java -cp sample.jar com.app.Test 

这样,您将jar添加到类路径,然后运行指定的主类。

java -jar所做的是它执行一个可运行的jar文件(它在清单文件中定义了自己的主类)。 之后的任何参数都不会用于指定类,但最终会传递给传递给main方法的String数组。

因此,如果你有一个正确构造的可运行jar文件,它应该只是

 java -jar sample.jar 

如果您使用的是Maven,则可能需要使用maven的install命令。 你可以在这里找到格式http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

看起来你需要一个清单和一个Main-Class属性,如果你没有。 如果您使用的是java 7,则会在此处提交一个错误http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7067922