找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3139|回复: 3

Java 未知异常 求解

[复制链接]
发表于 2014-7-10 19:41:42 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
  1. package javaapplication2;
  2. import java.net.*;
  3. import java.io.*;
  4. import java.awt.*;
  5. import java.awt.event.*;
  6. import java.util.logging.Level;
  7. import java.util.logging.Logger;


  8. public class JavaApplication2
  9. {
  10.     public static void main(String args[])
  11.     {
  12.         new C().aa();
  13.     }
  14. }

  15. class Con
  16. {
  17.    
  18.       static public Socket s = null;
  19.       static private OutputStream op = null;
  20.       public static void send(String str)
  21.       {
  22.           try
  23.         {
  24.             s = new Socket("192.168.1.2", 12345);
  25.             op = s.getOutputStream();
  26.             op.write(str.getBytes());
  27.         } catch (IOException e) {
  28.             System.out.println(e);
  29.         }
  30.           finally
  31.           {
  32.               try {
  33.                   op.close();
  34.               } catch (IOException ex) {
  35.                   System.out.println(ex);
  36.               }
  37.           }
  38.     }
  39. }

  40. class C extends Frame
  41. {
  42.     private  final TextField tf = new TextField(50);;
  43.     public void aa()
  44.     {
  45.         setTitle("聊天");
  46.         Panel p = new Panel();
  47.         p.setLayout(new FlowLayout(FlowLayout.LEFT));
  48.        // tf  = new TextField(50);
  49.         p.add(tf);
  50.         Button b = new Button("Go");
  51.         b.addActionListener(new ActionListener()
  52.         {

  53.             @Override
  54.             public void actionPerformed(ActionEvent e) {
  55.                 Con.send(tf.getText());
  56.                 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  57.             }
  58.             
  59.         });
  60.         addWindowListener(new WindowAdapter()
  61.         {

  62.             @Override
  63.             public void windowClosing(WindowEvent e) {
  64.                 try {
  65.                     Con.s.close();
  66.                     super.windowClosing(e); //To change body of generated methods, choose Tools | Templates.
  67.                 } catch (IOException ex) {
  68.                     Logger.getLogger(C.class.getName()).log(Level.SEVERE, null, ex);
  69.                 }
  70.                 finally
  71.                 {
  72.                     System.exit(1);
  73.                 }
  74.             }
  75.         });
  76.         p.add(b);
  77.         add(p, BorderLayout.SOUTH);
  78.         TextArea ta = new TextArea("",50,50,TextArea.SCROLLBARS_VERTICAL_ONLY );
  79.         add(ta,BorderLayout.NORTH);
  80.         pack();
  81.         setVisible(true);
  82.         
  83.     }
  84. /*   class action implements ActionListener
  85. {

  86.     @Override
  87.     public void actionPerformed(ActionEvent e) {
  88.             new Con().send(tf.getText());
  89.         
  90. }

  91. }*/
  92. }
复制代码

run:
Exception in thread "main" java.lang.NoClassDefFoundError: javaapplication2/C
        at javaapplication2.JavaApplication2.main(JavaApplication2.java:14)
Caused by: java.lang.ClassNotFoundException: javaapplication2.C
        at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more
Java Result: 1
成功构建 (总时间: 0 秒)


环境:NetBeans
eclipse,cmd下都可编译通过并运行
把con类相关内容删掉,也可正常运行
求解
回复

使用道具 举报

发表于 2014-7-10 22:36:27 | 显示全部楼层
也许只是NetBeans的问题吧?
回复 赞! 靠!

使用道具 举报

发表于 2014-7-11 11:17:47 | 显示全部楼层
花2分钟研究了一下你的代码,我的eclipse直接报了莫名其妙的错误

Con改成MyCon,没有报错,但是再改回去,提示错误'Con' is  an invalid name on this platform
去百度,得到
con是DOS保留字,好象是一设备,WINDOWS也是建立在DOS基础上的。
所以,不能再windows下面创建名字为con/Con,CON 的类!哈哈哈!我都忘了这个问题了,还有一些其他的类名也不能建立

con是操作系统保留的一个设备名字,还有很多设备名都不能拿来用,如下:   
   
  The   following   reserved   device   names   cannot   be   used   as   the   name   of   a   file:   CON,   PRN,   AUX,   CLOCK$,   NUL,   COM1,   COM2,   COM3,   COM4,   COM5,   COM6,   COM7,   COM8,   COM9,   LPT1,   LPT2,   LPT3,   LPT4,   LPT5,   LPT6,   LPT7,   LPT8,   and   LPT9.   Also   avoid   these   names   followed   by   an   extension   (for   example,   NUL.tx7).     


可见与NetBean神马的,没啥关系,名字冲突了而已
回复 赞! 靠!

使用道具 举报

发表于 2014-7-21 22:08:23 | 显示全部楼层
con是键盘输入。用DOS命令创建文件的方式是
copy con foo.txt
然后输入内容,最后按Ctrl+Z结束。
con相当于stdin
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-23 17:37 , Processed in 0.029402 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表