2010-11-04 65 views
0

經典問題,NoClassDefFoundError我需要什麼?創建新班級?經典錯誤,NoClassDefFoundError

import java.net.*; 
import java.io.*; 
import org.xsocket.*; 
import org.xsocket.connection.*; 
import java.io.IOException; 

public class SocketClient { 
    public static void main(String[] args) { 
     try { 
      IBlockingConnection bc = new BlockingConnection("127.0.0.1", 8090); 
      String req = "Hello server"; 
      bc.write(req + "\r\n"); 
     } catch (IOException e){} 
      System.out.println("missing"); 
    } 
} 

我得到以下異常:

 
C:\Users\Wildfire\Desktop>java -cp xSocket-2.8.14.jar SocketClient 
Exception in thread "main" java.lang.NoClassDefFoundError: SocketClient 
Caused by: java.lang.ClassNotFoundException: SocketClient 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: SocketClient. Program will exit. 
+0

什麼是完整錯誤? – TartanLlama 2010-11-04 16:23:05

+0

哪個班級找不到?發佈異常跟蹤。 – AHungerArtist 2010-11-04 16:23:30

+0

你使用的是notepad/vi嗎?一個合適的IDE應該只導入相關的類而不是'*'。檢查您的導入是否涵蓋您嘗試使用的所有課程。 (標準字符串除外) – Jimmy 2010-11-04 16:24:08

回答

4
java -cp xSocket-2.8.14.jar;. SocketClient 

你缺少從類路徑中的當前目錄。

爲了完整(感謝Mark):

在Unix/Linux的/ etc ...:

java -cp xSocket-2.8.14.jar:. SocketClient 
+4

這個。如果不指定類路徑,則類路徑是當前目錄(「。」)。當你指定一個類路徑時,默認是不會被使用的,所以如果你想要在類路徑上的當前目錄,你必須明確地添加它。 – 2010-11-04 16:33:35

+0

我會打賭幾乎我們所有人都做到了這一點:) – 2010-11-04 16:33:44

+3

@ user217582:看到我的評論。 ';'是一個路徑分隔符(分隔兩個不同的路徑,* nix平臺是':'),'.'表示當前目錄。 – 2010-11-04 16:34:34

6

這應該工作:

java -cp xSocket-2.8.14.jar SocketClient 

( 「CP」 是短期的 「類路徑」)

+0

不,它仍然呈現的NoClassDefFoundError – Proyb2 2010-11-04 16:04:09

+0

@ user217582:爲哪一類? SocketClient?如果是這樣,你編譯它? – 2010-11-04 16:13:12

+0

這是一個類問題,而不是實際的問題 – Proyb2 2010-11-04 16:18:16

1

你的類路徑可能是錯誤。嘗試:

java -classpath dir_missing_from_class_path your_java_file 
+0

我不明白,你的問題明確指出你正在遇到一個NoClassDefFoundError錯誤,我的anser專門爲你提供幫助。 – 2010-11-04 16:30:42

+0

http://jroller.com/sjivan/entry/difference_between_classnotfoundexception_and_noclassdeffounderror – Proyb2 2010-11-04 16:31:53

+0

我認爲@Michael是對的。你嘗試過他的解決方案嗎? – 2010-11-04 16:33:23