2012-10-02 30 views
0

我有一個.jar文件的類文件。我正在尋找一個Main方法的課程,所以我可以看到這個程序如何運作,而沒有它的網頁包袱。javap說有一個主要的方法,java說我瘋了

>javap HaploGrepServer/HaploGrepMain 
Compiled from "HaploGrepMain.java" 
public class HaploGrepServer.HaploGrepMain extends java.lang.Object{ 
    public HaploGrepServer.HaploGrepMain(); 
    public static void main(java.lang.String[])  throws java.io.IOException; 
} 

太棒了!我發現它

>java HaploGrepServer/HaploGrepMain 
Exception in thread "main" java.lang.NoClassDefFoundError: org/restlet/Component 
    at java.lang.ClassLoader.... 

OK,我可以補充一點,

>java -cp org.restlet.jar HaploGrepServer/HaploGrepMain 
Exception in thread "main" java.lang.NoClassDefFoundError: HaploGrepServer/HaploGrepMain 
Caused by: java.lang.ClassNotFoundException: HaploGrepServer.HaploGrepMain 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
Could not find the main class: HaploGrepServer/HaploGrepMain. Program will exit. 

怎麼辦?

回答

1

當你調用一個包中的類,嘗試使用點到封裝的組件,而不是正斜槓區分:

java -cp .:org.restlet.jar HaploGrepServer.HaploGrepMain 
+0

這是好主意,但它不會修復錯誤: 'java命令org.restlet.jar HaploGrepServer.HaploGrepMain 異常在線程 「主要」 java.lang.NoClassDefFoundError:HaploGrepServer/HaploGrepMain ' –

+0

看到編輯。需要更多類路徑。 – bmargulies

+0

ahh brilliant thx –

1

如果HaploGrepServer是在當前目錄下,你需要包括當前目錄與.類路徑:

java -cp .:org.restlet.jar HaploGrepServer.HaploGrepMain 
1

的命令:

java HaploGrepServer.HaploGrepMain 

使用默認的類路徑'.'。當您提供的類路徑:

java -cp restlet.jar HaploGrepServer.HaploGrepMain 

類路徑現在包含的Restlet罐子。

所以,你需要的類路徑包括兩個位置:

java -cp restlet.jar:. HaploGrepServer.HaploGrepMain 

注意:如果你是一個Windows平臺上,用它來代替冒號分號。