黑马程序员技术交流社区

标题: 大家帮忙看下错误信息 [打印本页]

作者: 温昌寿    时间: 2012-2-22 10:54
标题: 大家帮忙看下错误信息
本帖最后由 温昌寿 于 2012-2-24 18:04 编辑

Exception in thread "main" java.lang.NoClassDefFoundError: Chatserver (wrong nam
e: ChatServer)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:476)

作者: 王康    时间: 2012-2-22 11:09
你把你的代码贴出来啊,好多不同的程序都可以报这样的错误.
这样看不出来什么头绪!
作者: 温昌寿    时间: 2012-2-22 11:21
import java.io.*;
import java.net.*;
import java.util.*;

public class ChatServer {
        boolean started = false;
        ServerSocket ss = null;
       
        List<Client> clients = new ArrayList<Client>();
       
        public static void main(String[] args) {

                        System.out.println("aa\n");
                new ChatServer().start();
        }
       
        public void start() {
                try {

                        started = true;
                        ss = new ServerSocket(8888);
                        System.out.println("aa\n");
                } catch (BindException e) {
                        System.out.println("端口使用中....");
                        System.out.println("请关掉相关程序并重新运行服务器!");
                        System.exit(0);
                } catch (IOException e) {
                        e.printStackTrace();
                }
               
                try {
                       
                        while(started) {
                                Socket s = ss.accept();
                                Client c = new Client(s);
System.out.println("a client connected!");
                                new Thread(c).start();
                                clients.add(c);
                                //dis.close();
                        }
                } catch (IOException e) {
                        e.printStackTrace();
                } finally {
                        try {
                                ss.close();
                        } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                        }
                }
        }
       
        class Client implements Runnable {
                private Socket s;
                private DataInputStream dis = null;
                private DataOutputStream dos = null;
                private boolean bConnected = false;
               
                public Client(Socket s) {
                        this.s = s;
                        try {
                                dis = new DataInputStream(s.getInputStream());
                                dos = new DataOutputStream(s.getOutputStream());
                                bConnected = true;
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
               
                public void send(String str) {
                        try {
                                dos.writeUTF(str);
                        } catch (IOException e) {
                                e.printStackTrace();
                        }
                }
               
                public void run() {
                        try {
                                while(bConnected) {
                                        String str = dis.readUTF();
System.out.println(str);
                                        for(int i=0; i<clients.size(); i++) {
                                                Client c = clients.get(i);
                                                c.send(str);
//System.out.println(" a string send !");
                                        }
                                        /*
                                        for(Iterator<Client> it = clients.iterator(); it.hasNext(); ) {
                                                Client c = it.next();
                                                c.send(str);
                                        }
                                        */
                                        /*
                                        Iterator<Client> it = clients.iterator();
                                        while(it.hasNext()) {
                                                Client c = it.next();
                                                c.send(str);
                                        }
                                        */
                                }
                        } catch (EOFException e) {
                                System.out.println("Client closed!");
                        } catch (IOException e) {
                                e.printStackTrace();
                        } finally {
                                try {
                                        if(dis != null) dis.close();
                                        if(dos != null) dos.close();
                                        if(s != null)  {
                                                s.close();
                                                s=null;
                                                //s = null;
                                        }
                                } catch (IOException e1) {
                                        e1.printStackTrace();
                                }
                        }
                }
               
        }
}


作者: 温昌寿    时间: 2012-2-22 11:21
我是用vim写的,复制到Eclipse就可以运行,但是在dos下用javac就不行
作者: 黄凯    时间: 2012-2-22 11:24
NoClassDefFoundError:当 Java 虚拟机或 ClassLoader 实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用 new 表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。 当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。
你给的错误信息是说找不到 Chatserver 的定义。
作者: 刘基军    时间: 2012-2-22 11:56
Exception in thread "main" java.lang.NoClassDefFoundError: Chatserver (wrong name: ChatServer) //是大小写没注意吧

作者: 【专】【属】    时间: 2012-2-22 12:45
没有包名吗?如果有包名则要有包名了。也有可能是上楼说的。
作者: 温昌寿    时间: 2012-2-22 13:35
应该跟包没关系
作者: tanlei200620    时间: 2012-2-22 19:30
确认下你的当前目录在不在classpath路径下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2