2013-08-05 85 views
0

我創建了一個小小的HelloWorld示例,並且遇到了從命令提示符(在Windows上)運行它的問題。當我嘗試運行它:從命令提示符TCPSERVER運行JAVA控制檯應用時出現NoClassDefFoundError錯誤

的java我得到的NoClassDefFoundError
我能夠用javac編譯它,並得到生成的類文件。

某處我正在閱讀,我不得不把路徑放到CLASSPATH環境變量的class文件夾中。我已經完成並重新啓動機器,但我仍然得到相同的錯誤。

我也試圖通過運行它java -cp c:\ MyFolderWhereClassFileIs HelloWorld,它不起作用。

我已經看過ENV變量,我有以下內容: JAVA_HOME:C:\ Program Files(x86)\ Java \ jdk1.6.0_26; JRE_HOME:C:\ Program Files(x86)\ Java \ jre6; CLASSPATH:C:\ HelloWorld;

那麼,我該如何運行? 任何想法如何解決這個問題?謝謝。

PS。最討厭的事情對我來說,如果我在Eclipse中創建Java項目,並創建HelloWorld示例,那麼它運行良好......

UPDATE:

這裏是代碼。它確實有指定的包。

package test.com; 
public class HelloWorld { 
    public static void main(String[] args) { 
     System.out.print("Hello World"); 
    } 
} 

我HelloWorld.java和HelloWorld.class的文件是在這裏: C:\工作區\ TestApp的\ src \測試\ COM

有一件事我學到到目前爲止,我無法運行從com文件夾或測試文件夾中。我必須在src文件夾中才能找到類文件...但我仍然無法運行它...總是出現同樣的錯誤。

回答

2

您的班級是否有包名?也就是說,頂部的一條語句如下:

package <mypkgname>;

如果是這樣,那麼你必須(A)創建正確的目錄結構和(B)前綴的類名與您java命令包名稱。

例如,如果您的Java文件是這樣的:

package hello; 
public class HelloWorld { 
    ... 
} 

然後一個基本的目錄結構將類似於:

src/hello/ 
src/hello/HelloWorld.java 
src/hello/HelloWorld.class 

而且你的bash命令是:

cd src 
java hello.HelloWorld 

Ot如果你的班級沒有包名,它將被放置在默認包中。在這種情況下,您只需將cd添加到類文件所在的目錄,然後運行java HelloWorld

+0

我試着按照你的說法:在我的情況下,我輸入:「cd src」,然後,「java test.com.HelloWorld」...我得到同樣的錯誤。請看看我上面的更新..並感謝您的回覆 – bobetko

+0

@bobetko適合我:http://pastebin.com/AeD06jCV – zapl

+0

想通了......我會標記你的答案是正確的。 Eclipse將類文件放入bin文件夾,並且我沒有馬上注意到......我將類文件複製回java文件所在的位置,然後像您所說的那樣運行HelloWorld。謝謝。 – bobetko

相關問題