我正在尝试制作一个java程序,将远程linux服务器中给定目录的文件复制到我的windows机器上。 我做了以下计划:
package abc;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class Copy
{
/**
* @param args
*/
public static void main(String[] args)
{
System.out.println(System.getProperty("os.name"));
String hostname = "10.0.0.100";
String username = "pratz";
String password = "pratz";
String copyFrom = ".";
String copyTo = ".";
JSch jsch = new JSch();
Session session = null;
System.out.println("Trying to connect.....");
try {
session = jsch.getSession(username, hostname, 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
sftpChannel.get(copyFrom, copyTo);
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
System.out.println("Done !!");
}
}
但它会出现以下错误:
com.jcraft.jsch.JSchException: failed to send channel request
Done !!
at com.jcraft.jsch.Request.write(Request.java:65)
at com.jcraft.jsch.RequestSftp.request(RequestSftp.java:47)
at com.jcraft.jsch.ChannelSftp.start(ChannelSftp.java:237)
at com.jcraft.jsch.Channel.connect(Channel.java:152)
at com.jcraft.jsch.Channel.connect(Channel.java:145)
at abc.Copy.main(Copy.java:34)
当我尝试使用WINSCP复制文件时,文件很容易从远程linux服务器复制到windows机器。如何让我的java程序将文件从linux复制到windows?