作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试实现 JSch 以将文件从远程 Windows sftp 服务器检索到 Linux。
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try{
JSch jsch = new JSch();
session = jsch.getSession("userName","hostName",22);
session.setPassword("password");
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
System.out.println(session.sendKeepAliveMsg());
channel = session.openChannel("sftp");
channel.connect();
}catch(Exception e){
e.printstacktrace();
}
我在运行这段代码时遇到以下异常。
com.jcraft.jsch.JSchException: java.io.IOException: inputstream is closed
at com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:288)
at com.jcraft.jsch.Channel.connect(Channel.java:152)
调试时我发现:
start();
Channel 类 中的
方法抛出异常。无论如何我可以阻止这种情况吗?我不明白为什么该方法不做任何事情就在那里。
最佳答案
尝试在连接前将您的 channel 转换到 ChannelSft 中:
Channel channel = session.openChannel("sftp");
ChannelSftp channelSftp = (ChannelSftp) channel;
channelSftp.connect();
关于java - 使用 JSch 执行 SFTP 时无法连接到安全通道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057638/
一 点睛 通道用于数据的双向传输,即一个通道既可以用于读数据,又可以用于写数据。注意,这点不同于 I/O 中的 Stream,Stream 是单向的(只能是输入流或输出流)。 在 NIO 中,就是使用
一 点睛 通道用于数据的双向传输,即一个通道既可以用于读数据,又可以用于写数据。注意,这点不同于 I/O 中的 Stream,Stream 是单向的(只能是输入流或输出流)。 在 NIO 中,就是使用
我是一名优秀的程序员,十分优秀!