我正在使用Jsch Library(版本0.1.50)将文件从Windows服务器传输到Linux服务器,我使用ChannelSftp.put方法来执行相同操作。
代码将逐个从文件夹中读取压缩文件并传输到远程Linux服务器。
在停止工作之前曾经工作过的相同代码。
我验证了以下所有选项。没有问题。
将文件重命名为现有文件的名称。 创建已存在的目录。 将远程文件移动到其他文件系统(HDD)。 将文件上载到完整文件系统(HDD)。 超过用户磁盘配额。
有人可以让我知道我做错了吗
代码:
JSch jsch = new JSch();
session =jsch.getSession(ServerUsername,ServerIP,rdProcServerPort);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(Configuration.rdProcServerPassword);
session.connect();
channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
channel.cd(ServerDestPath);
File file = new File(zipFilePath);
File zipFilLst[] = file.listFiles();
for (File zFil : zipFilLst) {
FileInputStream fis = new FileInputStream(zFil);
channel.put(fis, zFil.getName());
fis.close();
}
例外:
4:java.io.IOException:输入流关闭 com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:689)at at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:540)at at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.java:492)引起: java.io.IOException:输入流已关闭 com.jcraft.jsch.ChannelSftp.fill(ChannelSftp.java:2871)at at com.jcraft.jsch.ChannelSftp.header(ChannelSftp.java:2895)at at com.jcraft.jsch.ChannelSftp.checkStatus(ChannelSftp.java:243 3)at at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.java:678)