我試圖學習從Windows命令行運行java應用程序,我找不出一個問題。NoClassDeffFoundError當從不同的目錄運行java.exe比.class文件
我有一個簡單的類我的桌面上:
public class Hello{
public static void main(String[] args){
System.out.println("1, two, three");
}
}
如果我運行javac
和java
命令時,我在CMD一切我的桌面目錄很是不錯,但如果我去一個目錄背(所以我不會和.java和.class文件在同一個目錄中),那麼我的cmd目錄是C:\Users\Tomas
,我的Hello.java和Hello.class文件在C:\Users\Tomas\Desktop
。我可以運行命令javac Desktop\Hello.java
,它可以工作,但如果我嘗試執行java Desktop\Hello.java
,我會得到Exception in thread "main" java.lang.NoClassDefFoundError: Desktop\Hello (wrong name: Hello)
。
我知道NoClassDefFoundError在編譯時有類可用時拋出,但ClassLoader在運行時無法找到它(找到關於它的好文章here)。 我認爲這個問題有什麼做的CLASSPATH變量,因此我將它設置爲:
"C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext";.;"C:\Program Files\Java\jdk1.7.0_21\jre\bin";"C:\Users\Tomas\Desktop"
(我包括「C:\用戶\托馬斯\桌面」只是嘗試一切) ,我試圖運行使用-classpath和-cp選項的「java」命令:
java -classpath "C:\Program Files\Java\jdk1.7.0_21\jre\lib\ext";.;"C:\Program Files\Java\jdk1.7.0_21\jre\bin";"C:\Users\Tomas\Desktop" Desktop\Hello
而且我不斷收到相同的異常。 如果有人能解釋我的錯誤以及爲什麼會發生這種情況,那麼我會很棒,甚至可以指出一些方向,我可以在哪裏閱讀更多關於此的信息。
謝謝。
當你導出它時,你是否使它成爲可運行的jar? – KeirDavis
我只是寫了記事本,並嘗試從命令提示符運行它 – Tomas
托馬斯,嘗試並獲得一個IDE。 Eclipse.org有一些。他們幫助完成Jars和編碼語法的工作=)希望能夠幫助:) – KeirDavis