把jdk编译时报的错误,和你的程序帖出来吧有很多原因可以造成空指针错误

解决方案 »

  1.   

    大概程序出错在implements Runnable,我删除它后就没有问题了(但它是程序的必须模块)。如果加上后就说空指针错误,真的不明白啊!请指教啊:
    public class ServerCenter implements Runnable
    {
    ServerSocket serverSocket;
    Thread serverThread;

    public ServerCenter()
    {
    try
    {
    serverSocket = new ServerSocket(5001);
    serverThread=new Thread(this);
    System.out.println("ServerCenter: server is started...");
    serverThread.start();
    }
    catch(IOException e)
    {
    fail(e,"Could not start Server");
    }
    }
    public static void fail(Exception e,String str)
    {
    System.err.println(str + " . " + e);
    }
    public void run()
    {
    try
    {
    while(true)
    {
    Socket postOffice = serverSocket.accept();

    DataProcessingCenter con = new DataProcessingCenter(postOffice);
    }
    }
    catch(IOException e)
    {
      fail(e,"Not Listening");
    }
    }
    public static void main(String args[])
    {
    new ServerCenter();
    }
    }
    class DataProcessingCenter extends Thread
    {
    protected Socket postOffice;

    protected ObjectInputStream acceptLetterMiss;
       
    protected ObjectOutputStream sendLetterMan;

    String response;
    String findID;
    String findID1;
    String findID2;
    String findID3;
    String findFName;
    String findLName;

    liulan ll;
    baozhuang bzh;
    yunhuo yh;
    shippingrate sr;
    Recipient reci;
    Orders orders;
    public DataProcessingCenter(Socket postOffice)
    {
    try
    {
    acceptLetterMiss = new ObjectInputStream(postOffice.getInputStream());

    sendLetterMan =new ObjectOutputStream(postOffice.getOutputStream());
    }
    catch(IOException e)
    {
    try
    {
    postOffice.close();
    }
    catch(IOException e1)
    {
    ServerCenter.fail(e1,"Unable to set up stream");
    return;
    }
    }

    this.start();
    }
    public void run()
    {

    try
    {
    while(true)
    {
    response = (String)acceptLetterMiss.readObject();
    responseMiss();
    }
    }
    catch(ClassNotFoundException e1)
    {
    ServerCenter.fail(e1,"" );
    }
    catch(IOException e2)
    {
    ServerCenter.fail(e2,"" );
    }
    finally
    {
    try
    {
    System.out.println("Socket closed");
    postOffice.close();
    }
    catch(IOException e)
    {
    ServerCenter.fail(e,"");
    }
    }
    }