我正在尝试做一些非常简单的事情,但我不知道该怎么做。我有一个第三方jar文件,它有类定义。我有一个主要方法的课程。主类使用jar文件中的类。我用这个命令选项编译。没有错误投诉。
javac -classpath party.jar mymain.java
当我尝试运行程序时,出现以下错误:
java -jar party.jar myMain
Exception in thread "main" java.lang.NullPointerException at sun.launcher.LauncherHelper.getMainClassFromJar(LauncherHelper.java:399)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:463)
我想我需要在jar文件中添加Main-Class选项。但我不允许更改party.jar文件,因为它属于第三方。我需要做什么才能运行我的程序?我需要创建自己的jar文件吗?如果是,我需要包含哪些内容?
这是确切的命令和输出
myjar] $ javac -cp party.jar mymain.java
myjar] $ java -cp party.jar mymain
错误:无法找到或加载主类mymain
答案 0 :(得分:2)
您应该尝试使用java -cp party.jar myMain
。
使用-jar告诉JVM在给定的jar文件中查找您的类。但是如果我理解正确的话,party.jar不包含你的myMain类。所以你只需告诉Java你希望使用-cp选项使用party.jar中的类(就像你编译时那样),但是从你所在的目录中取出myMain类。
答案 1 :(得分:0)
您应该尝试使用java -cp party.jar;改为使用myMain。如果您使用多个jar文件,请在每个文件后放置分号。切记在主类名称(此处为myMain)之前,在最后一个分号之后放置空格。 希望如此。