用于SSH的JSch在调试模式下冻结

时间:2015-12-01 11:49:57

标签: java eclipse ssh jsch

我有函数通过ssh检索服务器上运行的命令的输出:

public static List<String> executeCmd(Session session, String cmd) throws IOException, JSchException{
        System.out.println("Executing : "+cmd);
        //String response = null;
        List<String> l = new ArrayList<>();

        ChannelExec ch= (ChannelExec)session.openChannel("exec");
         if(ch == null)
             throw new JSchException("Unable to create channel");

        ch.setInputStream(null);
        ch.setErrStream(System.err);
        ch.setCommand(cmd);
        ch.connect();
        BufferedReader in = new BufferedReader(new InputStreamReader(ch.getInputStream()));
        String line;
        while((line = in.readLine())!= null){
            System.out.println(line);
            l.add(line);
        }
        ch.disconnect();

        return l;
    }
  

如果我在调试模式下运行此程序,它将冻结in.readLine()   调用

我在eclipse中使用JSCh 1.51。

文件我试图在服务器上尾 - 一个日志文件。

&#39; tail -f&#39;对于文件的腻子没有问题。

为什么这个程序在调试模式下会冻结?

0 个答案:

没有答案