经典错误,NoClassDefFoundError

时间:2010-11-04 16:21:01

标签: java

经典问题,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.

3 个答案:

答案 0 :(得分:6)

这应该有效:

java -cp xSocket-2.8.14.jar SocketClient

(“cp”是“classpath”的缩写)

答案 1 :(得分:4)

java -cp xSocket-2.8.14.jar;. SocketClient  

您缺少类路径中的当前目录。

为了完整性(感谢Mark):

在Unix / Linux / etc上......:

java -cp xSocket-2.8.14.jar:. SocketClient

答案 2 :(得分:1)

您的类路径可能有误。尝试:

java -classpath dir_missing_from_class_path your_java_file