2011-09-18 73 views
0

我想編譯並執行一個使用JTidy的java程序。我設法使用以下命令編譯程序:編譯並執行一個jar程序包的java程序

javac -classpath jtidy-r938.jar @sourcefile 

這似乎工作得很好。然而,當我嘗試運行使用下面的命令程序(頂部是類的包含該程序的主要部分的名稱):

java -classpath jtidy-r938.jar Top 

我得到這個錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: Top 
Caused by: java.lang.ClassNotFoundException: Top 
... 
Could not find the main class: Top. Program will exit. 

這很可能是一個簡單的解決方案非常愚蠢的問題,但它令我瘋狂。請幫忙!!

回答

1

您正在移除路徑「。」。 (當前目錄),當你設置它的時候。

嘗試java -classpath .;jtidy-r938.jar Top

這樣它應該能夠找到你的班級。

+0

你先生,我的英雄! – giroy

5

您在這裏使用類Top的完全限定名稱,即您的類Top無包裝?如果不是,則需要提供上述命令的全限定類名稱才能工作。確保您還將類別路徑中的其他JAR依賴項與;:分開,具體取決於您的目標平臺。

編輯:此外,如下所述,請確保您的類路徑中還包含.(或適當的位置),如果您的類依賴關係不僅位於JAR中,還位於文件系統上的.class文件中。