在package 对象流收中出现了问题,其中要发送的message类的对象分别在两个不同的project中声明,声明形式相同,运行的时候在“对象流收”的工程中readobject处无法接收“对象流发”工程中发送的对象...抛出异常classnotfoundexception...寻求解决方案...谢谢大家...package 对象流发;import java.awt.BorderLayout;
import java.awt.Dimension;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Rectangle;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextArea;
//
import java.io.*;;
//
import java.net.*;
///**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2010</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Frame1 extends JFrame {
    JPanel contentPane;
    JLabel jLabel1 = new JLabel();
    JTextField jTextField1 = new JTextField();
    JLabel jLabel2 = new JLabel();
    JPasswordField jPasswordField1 = new JPasswordField();
    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
    JButton jButton3 = new JButton();
    JTextArea jTextArea1 = new JTextArea();
    public Frame1() {
        try {
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(null);
        setSize(new Dimension(400, 367));
        setTitle("Frame Title");
        jLabel1.setText("帐号:");
        jLabel1.setBounds(new Rectangle(21, 44, 39, 24));
        jTextField1.setBounds(new Rectangle(69, 44, 293, 23));
        jLabel2.setText("密码:");
        jLabel2.setBounds(new Rectangle(21, 80, 39, 24));
        jPasswordField1.setBounds(new Rectangle(69, 80, 292, 23));
        jButton1.setBounds(new Rectangle(21, 127, 68, 21));
        jButton1.setText("确定");
        jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
        jButton2.setBounds(new Rectangle(162, 127, 68, 21));
        jButton2.setText("重置");
        jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this));
        jButton3.setBounds(new Rectangle(293, 127, 68, 21));
        jButton3.setText("退出");
        jButton3.addActionListener(new Frame1_jButton3_actionAdapter(this));
        jTextArea1.setEditable(false);
        jTextArea1.setBounds(new Rectangle(21, 164, 339, 129));
        contentPane.add(jLabel1);
        contentPane.add(jTextField1);
        contentPane.add(jLabel2);
        contentPane.add(jPasswordField1);
        contentPane.add(jButton2);
        contentPane.add(jButton1);
        contentPane.add(jButton3);
        contentPane.add(jTextArea1);
    }    public void jButton3_actionPerformed(ActionEvent e) {
        //
        System.exit(0);
    }    public void jButton2_actionPerformed(ActionEvent e) {
        //
        jTextField1.setText(null);
        //
        jPasswordField1.setText(null);
        //
        jTextArea1.setText(null);
    }    public void jButton1_actionPerformed(ActionEvent e) {
        try
        {
            //
            Message message = new Message(jTextField1.getText(),String.valueOf(jPasswordField1.getPassword()));
            //
            jTextArea1.append("帐号是:" + message.name + "\n");
            //
            jTextArea1.append("密码是:" + message.password + "\n");
            //
            jTextArea1.append("本机IP是:" +InetAddress.getLocalHost().getHostAddress()+"\n");
            //
            Net_out net_out=new Net_out(InetAddress.getLocalHost().getHostName(),5566);
            //
            net_out.send_object(message);
        }
        catch(Exception e1)
        {
            System.out.println(e1.toString());
        }
    }
}
class Frame1_jButton1_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton1_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {
        adaptee.jButton1_actionPerformed(e);
    }
}
class Frame1_jButton2_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton2_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {
        adaptee.jButton2_actionPerformed(e);
    }
}
class Frame1_jButton3_actionAdapter implements ActionListener {
    private Frame1 adaptee;
    Frame1_jButton3_actionAdapter(Frame1 adaptee) {
        this.adaptee = adaptee;
    }    public void actionPerformed(ActionEvent e) {
        adaptee.jButton3_actionPerformed(e);
    }
}
////////////////////////////////////////////////声明消息类
class Message implements Serializable
{
    String name=null;
    String password=null;
    Message(String name_in,String password_in)
    {
        name=name_in;
        password=password_in;
    }
}
////////////////////////////////////////////////声明网络类
class Net_out
{
    String inet_ip=null;
    //
    int port_ip;
    //
    Socket my_socket=null;
    //
    ObjectOutputStream out=null;
    //
    Net_out(String inet,int port)
    {
        try
        {
            inet_ip=inet;
            //
            port_ip = port;
            //
            if(my_socket!=null)
            {
                my_socket.close();
            }
            //
            my_socket=new Socket(inet,port);
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
        }
    }
    ////////////////////////////////////////
    void send_object(Object object_out)
    {
        try
        {
            out=new ObjectOutputStream(my_socket.getOutputStream());
            out.writeObject(object_out);
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
        }
    }
}

解决方案 »

  1.   

    package 对象流收;import java.awt.BorderLayout;
    import java.awt.Dimension;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JTextArea;
    import java.awt.Rectangle;
    import javax.swing.JButton;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    //
    import java.io.*;
    //
    import java.net.*;
    /**
     * <p>Title: </p>
     *
     * <p>Description: </p>
     *
     * <p>Copyright: Copyright (c) 2010</p>
     *
     * <p>Company: </p>
     *
     * @author not attributable
     * @version 1.0
     */
    public class Frame1 extends JFrame {
        JPanel contentPane;
        JTextArea jTextArea1 = new JTextArea();
        JButton jButton1 = new JButton();
        public Frame1() {
            try {
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                jbInit();
            } catch (Exception exception) {
                exception.printStackTrace();
            }
        }    /**
         * Component initialization.
         *
         * @throws java.lang.Exception
         */
        private void jbInit() throws Exception {
            contentPane = (JPanel) getContentPane();
            contentPane.setLayout(null);
            setSize(new Dimension(400, 300));
            setTitle("Frame Title");
            jTextArea1.setEditable(false);
            jTextArea1.setBounds(new Rectangle(22, 18, 345, 205));
            contentPane.setEnabled(false);
            contentPane.setToolTipText("");
            jButton1.setBounds(new Rectangle(22, 234, 344, 23));
            jButton1.setText("确定");
            jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
            contentPane.add(jTextArea1);
            contentPane.add(jButton1);
        }    public void jButton1_actionPerformed(ActionEvent e) {
            //
            Inet_in inet_in=new Inet_in(5566);
            //
            Thread thread=new Thread(inet_in);
            //
            thread.start();
            //
            //
            jButton1.setVisible(false);
        }
    }
    class Frame1_jButton1_actionAdapter implements ActionListener {
        private Frame1 adaptee;
        Frame1_jButton1_actionAdapter(Frame1 adaptee) {
            this.adaptee = adaptee;
        }    public void actionPerformed(ActionEvent e) {
            adaptee.jButton1_actionPerformed(e);
        }
    }
    ///////////////////////////////////////////////////////////////////////
    class Message implements Serializable
    {
        String name=null;
        String password=null;
        Message(String name_in,String password_in)
        {
            name=name_in;
            password=password_in;
        }
    }
    ///////////////////////////////////////////////////////////////////////
    class Inet_in implements Runnable
    {
        ServerSocket my_serversocket=null;
        //
        Socket you=null;
        //
        int port;
        //
        ObjectInputStream in=null;
        //
        Message message = null;
        //
        Inet_in(int port_in)
        {
            try
            {
                port=port_in;
                //
                my_serversocket=new ServerSocket(port);
                //
            }
            catch(Exception e)
            {
                System.out.println(e.toString());
            }
        }
        /////////////////////////////////////
        public void run()
        {
            try
            {
                if(you!=null)
                {
                    //
                    you.close();
                }
                //
                you = my_serversocket.accept();
                //
                System.out.println(you.toString());
                //
                in = new ObjectInputStream(you.getInputStream());
                //
                System.out.println(in.toString());
                //
               System.out.println(in.readObject().toString());
                //
                message = (Message)in.readObject();/////////////////////////////无法调通
                //
                System.out.println(message.name);
                //
                System.out.println(message.password);
                /////////////////////////////////////////////////
                Thread.sleep(200);
            }
            catch(Exception e)
            {
                System.out.println(e.toString());
            }
        }
        ////////////////////////////////////
    }