Java JSch for SSH在调试模式下冻结

Java JSch for SSH在调试模式下冻结,java,eclipse,ssh,jsch,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

我具有通过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;
    }
publicstaticlist executeCmd(会话会话,字符串cmd)抛出IOException、jscheexception{
System.out.println(“执行:+cmd”);
//字符串响应=null;
列表l=新的ArrayList();
ChannelExec ch=(ChannelExec)session.openChannel(“exec”);
if(ch==null)
抛出新的JSchException(“无法创建通道”);
ch.setInputStream(空);
ch.setErrStream(System.err);
ch.setCommand(cmd);
ch.connect();
BufferedReader in=新的BufferedReader(新的InputStreamReader(ch.getInputStream());
弦线;
而((line=in.readLine())!=null){
系统输出打印项次(行);
l、 添加(行);
}
ch.断开连接();
返回l;
}
如果我在调试模式下运行此程序,它将在.readLine()中冻结 打电话

我在eclipse中使用JSCH1.51

我试图跟踪的文件位于服务器上—一个日志文件

“tail-f”对文件的腻子没有问题


为什么此程序在调试模式下冻结?

您的异常堆栈跟踪似乎与您发布的代码没有任何关系。你能编辑你的问题以包含整个异常消息和stacktrace吗?@Kenster你是对的,我发布的日志与问题无关,它实际上是从跟踪的日志中删除并显示错误,很抱歉提供了错误信息,我正在编辑问题。您的异常stacktrace似乎与您发布的代码没有任何关系。你能编辑你的问题以包含整个异常消息和stacktrace吗?@Kenster你是对的,我发布的日志与问题无关,它实际上是从跟踪的日志中删除并显示错误,很抱歉信息错误,我正在编辑问题。