отсутствует оператор возврата, чтобы метод работал - PullRequest
0 голосов
/ 02 мая 2018

я пытаюсь вывести список файлов с удаленного сервера через sftp и я застрял здесь: что я должен поставить как оператор retrun, чтобы он работал ^^ '

@Override
public LsEntry connectToServer() {
         String  SFTPHOST = "xxxxx";
         int   SFTPPORT = 22;
         String  SFTPUSER = "xxxxx";
         String  SFTPPASS = "xxxx";
         String SFTPWORKINGDIR = "/xx/vvv/bbb/rrr";

        Session session = null;
        Channel channel = null;
        ChannelSftp channelSftp = null;

        try{
            JSch jsch = new JSch();
            session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
            session.setPassword(SFTPPASS);
            java.util.Properties config = new java.util.Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();
            channel = session.openChannel("sftp");
            channel.connect();
            System.out.println("Starting the session ..");
            channelSftp = (ChannelSftp)channel;
            channelSftp.cd(SFTPWORKINGDIR);
            Vector filelist = channelSftp.ls(SFTPWORKINGDIR);
            for(int i=0; i<filelist.size();i++){
                LsEntry entry = (LsEntry) filelist.get(i);
                System.out.println(entry.getFilename());
            }
            while(session != null){
                System.out.println("Killing the session");
                session.disconnect();
                System.exit(0);
            }

        }catch(Exception ex){
            ex.printStackTrace();
        }
        return WHAAT ;


    }

Может ли кто-нибудь помочь мне в этом? Я действительно не знал, кто это сделать :( заранее спасибо

1 Ответ

0 голосов
/ 08 мая 2018

это потому, что запись нулевая, поскольку ее значение содержится только в цикле for,

, поэтому я исправил декларацию, и это сработало :)

LsEntry entry = null;
try {
    JSch jsch = new JSch();
    session = jsch.getSession(USER, HOST, PORT);
    session.setPassword(PASS);
    // the rest of the code
    //....
    //...
    for (int i = 0; i < filelist.size(); i++) {
        //cast
        entry = (LsEntry) filelist.get(i);
        System.out.println(((LsEntry) entry).getFilename());
    }
    while (session != null) {
        System.out.println("Killing the session");
        session.disconnect();
        System.exit(0);
    }

} catch (Exception ex) {
    ex.printStackTrace();
}
return (LsEntry) entry;
...