我创建了一个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)
任何人都可以帮我解决这个异常并运行jar文件吗?
提前致谢。
答案 0 :(得分:7)
如果要运行Test类,则应使用
java -cp sample.jar com.app.Test
这样,您可以将jar添加到类路径中,然后运行指定的主类。
java -jar
做的是它执行一个可运行的jar文件(它在清单文件中定义了自己的主类)。之后的任何参数都不会用于指定类,而是以传递给main方法的String数组结束。
因此,如果你有一个正确构造的可运行jar文件,它应该只是
java -jar sample.jar
答案 1 :(得分:2)
如果您使用的是Maven,则可能需要使用maven的install命令。你可以在这里找到格式 http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
答案 2 :(得分:0)
如果您没有,则看起来确实需要清单和Main-Class属性。 如果您使用的是java 7,则会在此处提交错误http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7067922