黑马程序员技术交流社区

标题: 崩溃掉了NoClassDefFoundError [打印本页]

作者: dicegame    时间: 2013-8-22 17:03
标题: 崩溃掉了NoClassDefFoundError
本帖最后由 forward 于 2013-8-24 21:22 编辑
  1. package day23;

  2. import java.io.BufferedReader;
  3. import java.io.InputStreamReader;
  4. import java.net.DatagramPacket;
  5. import java.net.DatagramSocket;
  6. import java.net.InetAddress;

  7. class Send2 {

  8.         public static void main(String[] args) throws Exception {
  9.                 DatagramSocket ds = new DatagramSocket();
  10.                 try {
  11.                         BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  12.                         String line = null;
  13.                         while((line = bufr.readLine()) != null) {
  14.                                 if("over".equals(line))
  15.                                         break;
  16.                                 byte[] buf = line.getBytes();
  17.                                 DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("192.168.1.103"), 10000);
  18.                                 ds.send(dp);
  19.                         }
  20.                         ds.close();
  21.                 } catch(Exception e) {
  22.                         throw new RuntimeException("发送失败");
  23.                 }
  24.         }

  25. }

  26. class Rec2 {
  27.         
  28.         public static void main(String[] args) throws Exception {
  29.                 DatagramSocket ds = new DatagramSocket(10000);
  30.                 try {
  31.                         while(true) {
  32.                                 byte[] buf = new byte[1024];
  33.                                 DatagramPacket dp = new DatagramPacket(buf, buf.length);
  34.                                 ds.receive(dp);
  35.                                 String ip = dp.getAddress().getHostAddress();
  36.                                 String data = new String(dp.getData(), 0, dp.getLength());
  37.                                 int port = dp.getPort();
  38.                                 System.out.println(ip + "::" + data + "::" + port);
  39.                         }
  40.                 } catch(Exception e) {
  41.                         System.out.println("接收失败");
  42.                 }
  43. //                ds.close();
  44.         }
  45. }
复制代码
java文件名是ChatDemo2
输入javac ChatDeme2.java可以通过编译
紧接着输入java Rec2时就报错
输入java Send2也报错
为什么啊?!

chat.PNG (23.77 KB, 下载次数: 4)

DOS截图

DOS截图

作者: dicegame    时间: 2013-8-22 17:07
补充一下,编译后生产了那两个类文件,可为什么还报类找不到错误啊!
作者: gudao20080    时间: 2013-8-22 17:29
本帖最后由 gudao20080 于 2013-8-22 17:31 编辑

我运行了一下,没有报错,不过没有输出结果。
你最好是把发和送分开写在不同的文件中再运行试试
.你的文件名和类名不一致,运行时会报错的,你应该把文件名改成和类名一致就应该运行通过了

作者: 耶稣说wō乖    时间: 2013-8-22 17:42
是不是你改了classPath?编译的class文件没有在目标文件夹下?
我copy你的代码运行了下 没问题。。

作者: dicegame    时间: 2013-8-22 18:19
耶稣说wō乖 发表于 2013-8-22 17:42
是不是你改了classPath?编译的class文件没有在目标文件夹下?
我copy你的代码运行了下 没问题。。
...

classpath=.;C:\;E:\
ChatDemo2.java文件在C盘根目录下
编译生成的Rec2.class和Send2.class文件也在C盘根目录下
就是运行时报错
我写了个HelloWorld试了下,没问题
到地什么原因呢?
是不是ChatDemo2.java文件中引用了很多类,而我修改了JDK?
可是我用eclipse运行很多也引用了很多类的文件时没问题啊!
崩溃中。。。。


作者: dicegame    时间: 2013-8-22 18:20
gudao20080 发表于 2013-8-22 17:29
我运行了一下,没有报错,不过没有输出结果。
你最好是把发和送分开写在不同的文件中再运行试试
.你的文件 ...

哥们类名没写public

作者: 神之梦    时间: 2013-8-22 18:56
没加包名




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