2012-03-19 101 views
1

我正在尝试做一些非常简单的事情,但我不知道该怎么做。我有一个具有类定义的第三方jar文件。我有一个主要方法的课。主类在jar文件中使用一个类。我用这个命令选项编译。没有错误投诉。如何用第三方jar文件运行代码?

的javac -classpath party.jar mymain.java

当我试图运行程序时,我得到了以下错误:

Java的罐子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命令party.jar mymain

错误:无法找到或者加载主类mymain

+0

你可以发布命令你跑去执行程序? – 2012-03-19 13:07:05

+0

看起来你的主类是在mymain.java中。你如何运行该程序? (例如java -jar mymain) – beefyhalo 2012-03-19 13:08:20

+0

我用它来运行命令java -jar party.jar myMain。 – tadpole 2012-03-19 13:10:49

回答

2

您应该尝试使用java -cp party.jar myMain。 使用-jar告诉JVM在给定的jar文件中查找您的类。但是,如果我理解正确,party.jar不包含myMain类。所以你只是告诉Java,你希望使用-cp选项来使用party.jar中的类(就像你编译时那样),但是从你所在的目录中取出myMain类。

+0

1)java -cp party.jar myMain。我得到这个错误“错误:无法找到或加载主类我的主” – tadpole 2012-03-19 13:21:17

+0

要么你没有输入该命令,或没有得到该输出。这个例子与课程名称不同。 – 2012-03-19 13:24:49

+0

您也可以尝试先使用'java mymain'运行您的程序。如果它抛出一个ClassNotFoundException与你从party.jar导入的类的名字,你很好,只需要添加-cp party.jar来使它工作。如果您的mymain出现错误,您应该检查mymain.class是否存在于您所在的目录中,并且mymain.java中没有使用包声明 – pushy 2012-03-19 13:28:04

相关问题