我用FTPclient.list(*.xml)方法判断该ftp目录下是否有xml文件,有的话返回列表,没有的话返回空。在SerU4.1版本做服务器的系统中没有问题,在Unix下程序就会出下面的现象。如果目录下有xml文件,程序正常,返回所有xml文件的列表。
如果没有,则发生异常:
“处理路径时发生错误:java.lang.NullPointerException”
程序就退出了请问这时什么原因,求教,JAR没有问题一该,都是大家通用的

解决方案 »

  1.   

    没有几句话,
    第一句FTPclient.chdir("指定的目录")
    第二句FTPclient.list(*.xml)//查找该目录中是否有xml文件,直接异常
      

  2.   

    java.lang.NullPointerException  //对象未成功赋值而造成指针的悬空FTPclient.list(*.xml)  你仔细检查该方法看看,是因为何原因造成的对象未赋值
      

  3.   

    这个方法是包中封装的方法,我反编译看看了,比较晕。 public String list(String mask)
            throws FTPException, IOException
        {
            data = control.createDataSocket();
            InputStreamReader in = new InputStreamReader(data.getInputStream());
            BufferedReader bIn = new BufferedReader(in);
            String reply = control.sendCommand("NLST ".concat(String.valueOf(String.valueOf(mask))));
            String validCodes1[] = {
                "125", "150"
            };
            control.validateReply(reply, validCodes1);
            int chunksize = 4096;
            char chunk[] = new char[chunksize];
            char resultBuf[] = new char[chunksize];
            char temp[] = null;
            int count;
            for(int bufsize = 0; (count = bIn.read(chunk, 0, chunksize)) >= 0; bufsize += count)
            {
                temp = new char[bufsize + count];
                System.arraycopy(resultBuf, 0, temp, 0, bufsize);
                System.arraycopy(chunk, 0, temp, bufsize, count);
                resultBuf = temp;
            }        String validCodes2[] = {
                "226", "250"
            };
            reply = control.readReply();
            control.validateReply(reply, validCodes2);
            try
            {
                bIn.close();
                data.close();
            }
            catch(IOException ioexception) { }
            return new String(resultBuf);
        }