A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hanyahui 中级黑马   /  2012-12-29 18:49  /  2097 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 hanyahui 于 2012-12-29 18:54 编辑


这是什么问题
求帮助
图不行
C:\>java FileTest
Exception in thread "main" java.lang.NoClassDefFoundError: FileTest (wrong name:
y12/m12/d19/FileTest)
        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:480)

所有的都这么提示

11 个回复

倒序浏览
Exception in thread "main" java.lang.NoClassDefFoundError: FileTest (wrong name:
主线程异常:类加载错误 ==> y12/m12/d19/FileTest
回复 使用道具 举报
代码有错误,没法加载主方法
回复 使用道具 举报
郝福明 发表于 2012-12-29 23:34
代码有错误,没法加载主方法

我在eclipse中可以运行呢,
然后把类文件拷出来,就成这样了
回复 使用道具 举报
叶桂宏 发表于 2012-12-29 19:05
检查文件

文件有
路径也对
回复 使用道具 举报
焦健 来自手机 高级黑马 2012-12-31 01:07:29
地板
看一下代码类名是不是公有了啊!公有的不能直接编译来自: Android客户端
回复 使用道具 举报
王玮 中级黑马 2012-12-31 10:42:18
7#
main() 方法的参数写了没???
回复 使用道具 举报
客户端代码
  1. package cn.itcast.net.p5.tcptest;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.PrintWriter;
  6. import java.net.Socket;
  7. import java.net.UnknownHostException;

  8. public class TransClient {

  9.         /**
  10.          * @param args
  11.          * @throws IOException
  12.          * @throws UnknownHostException
  13.          */
  14.         public static void main(String[] args) throws UnknownHostException, IOException {

  15.                 /*
  16.                  * 思路:
  17.                  * 客户端:
  18.                  * 1,需要先有socket端点。
  19.                  * 2,客户端的数据源:键盘。
  20.                  * 3,客户端的目的:socket.
  21.                  * 4,接收服务端的数据,源:socket。
  22.                  * 5,将数据显示在打印出来:目的:控制台.
  23.                  * 6,在这些流中操作的数据,都是文本数据。
  24.                  *
  25.                  *
  26.                  * 转换客户端:
  27.                  * 1,创建socket客户端对象。
  28.                  * 2,获取键盘录入。
  29.                  * 3,将录入的信息发送给socket输出流。
  30.                  */
  31.                
  32.                 //1,创建socket客户端对象。
  33.                 Socket s = new Socket("192.168.1.100",10004);
  34.                
  35.                 //2,获取键盘录入。
  36.                 BufferedReader bufr  =
  37.                                 new BufferedReader(new InputStreamReader(System.in));
  38.                
  39.                 //3,socket输出流。
  40. //                new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
  41.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  42.                
  43.                
  44.                 //4,socket输入流,读取服务端返回的大写数据
  45.                 BufferedReader bufIn  = new BufferedReader(new InputStreamReader(s.getInputStream()));
  46.                
  47.                 String line = null;
  48.                
  49.                 while((line=bufr.readLine())!=null){
  50.                        
  51.                         if("over".equals(line))
  52.                                 break;
  53.                        
  54. //                        out.print(line+"\r\n");
  55. //                        out.flush();
  56.                         out.println(line);
  57.                        
  58.                         //读取服务端发回的一行大写数。
  59.                         String upperStr = bufIn.readLine();
  60.                         System.out.println(upperStr);
  61.                 }
  62.                
  63.                 s.close();
  64.                
  65.         }

  66. }
复制代码
服务器端代码
  1. package cn.itcast.net.p5.tcptest;

  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.io.PrintWriter;
  6. import java.net.ServerSocket;
  7. import java.net.Socket;

  8. public class TransServer {

  9.         /**
  10.          * @param args
  11.          * @throws IOException
  12.          */
  13.         public static void main(String[] args) throws IOException {

  14.                 /*
  15.                  *
  16.                  * 转换服务端。
  17.                  * 分析:
  18.                  * 1,serversocket服务。
  19.                  * 2,获取socket对象。
  20.                  * 3,源:socket,读取客户端发过来的需要转换的数据。
  21.                  * 4,目的:显示在控制台上。
  22.                  * 5,将数据转成大写发给客户端。
  23.                  */
  24.                
  25.                 //1,
  26.                 ServerSocket ss = new ServerSocket(10004);
  27.                
  28.                 //2,获取socket对象。
  29.                 Socket s = ss.accept();
  30.                
  31.                 //获取ip.
  32.                 String ip = s.getInetAddress().getHostAddress();
  33.                 System.out.println(ip+"......connected");
  34.                
  35.                 //3,获取socket读取流,并装饰。
  36.                 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
  37.                
  38.                 //4,获取socket的输出流,并装饰。
  39.                 PrintWriter out = new PrintWriter(s.getOutputStream(),true);
  40.                
  41.                 String line = null;
  42.                 while((line=bufIn.readLine())!=null){
  43.                        
  44.                         System.out.println(line);
  45.                         out.println(line.toUpperCase());
  46. //                        out.print(line.toUpperCase()+"\r\n");
  47. //                        out.flush();
  48.                 }
  49.                
  50.                 s.close();
  51.                 ss.close();
  52.                
  53.         }

  54. }
复制代码
没有错啊怎么就是不能运行呢
Microsoft Windows [版本 6.2.9200]
(c) 2012 Microsoft Corporation。保留所有权利。

E:\Users\yahui>start

E:\Users\yahui>javac TransClient.java

E:\Users\yahui>java TransClient
Exception in thread "main" java.lang.NoClassDefFoundError: TransClient (wrong na
me: cn/itcast/net/p5/tcptest/TransClient)
        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:480)


E:\Users\yahui>

很是郁闷

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
本帖最后由 修心者 于 2012-12-31 15:08 编辑

把文件开头的包删除,使其成为单独的类(裸体类).
如果不删除的话,需要在硬盘上创建此路径,编译时要在此目录下输入javac **.java.执行时也要加上此路径。
回复 使用道具 举报
修心者 发表于 2012-12-31 15:06
把文件开头的包删除,使其成为单独的类(裸体类).
如果不删除的话,需要在硬盘上创建此路径,编译时要在此 ...

ok了
谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马