为什么我一直得到-1作为ChannelSftp的退出状态?

时间:2015-03-31 13:55:35

标签: java ssh sftp jsch

我想监视频道的状态,但它会继续打印-1。 我在代码中使用它,它工作得很好。它成功传输文件。它应该返回0但它一直返回-1。知道为什么吗?

channelSftp = (ChannelSftp) session.openChannel("sftp");
this.timeout = session.getTimeout();
System.out.println(channelSftp.getExitStatus());
channelSftp.connect();
System.out.println(channelSftp.getExitStatus());
channelSftp.cd(path);
System.out.println(channelSftp.getExitStatus());
is = channelSftp.get(filename);
System.out.println(channelSftp.getExitStatus());

1 个答案:

答案 0 :(得分:0)

Channel.getExitStatus返回通道的退出状态,而不是先前的SFTP请求。在渠道关闭之前,退出状态未定义(-1表示的内容):

  

检索与此通道对应的远程命令的退出状态。退出状态仅适用于某些类型的频道,仅在频道关闭后(更准确地说,就在频道关闭之前)。

ChannelSftp.connectChannelSftp.cd等所有方法在失败时抛出异常。没有必要检查"状态"在你打电话之后。

相关问题