Я использую JSch для получения файла с удаленного компьютера по SFTP. Вот код
public class TestSFTPinJava {
public static void main(String args[]) {
JSch jsch = new JSch();
Session session = null;
try {
session = jsch.getSession("username", "sftp.abc.com", 22);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword("password");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftpChannel = (ChannelSftp) channel;
System.out.println("Directory:" + sftpChannel.pwd());
sftpChannel.cd("remoteDirectory/");
System.out.println("Directory after cd:" + sftpChannel.pwd());
sftpChannel.get("remote-data.txt");
sftpChannel.put("C:\\Users\\mona\\Documents\\local-copy.txt");
sftpChannel.exit();
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
}
}
}
. Теперь у меня два вопроса:
sftpChannel.get ("remote-data.txt");
выдает исключение:
нет такого файла
в com.jcraft.jsch.ChannelSftp.throwStatusError (ChannelSftp.java:2297)
в com.jcraft.jsch.ChannelSftp._stat (ChannelSftp.java:1750)
в com.jcraft.jsch.ChannelSftp.get (ChannelSftp.java:1020)
в com.jcraft.jsch.ChannelSftp.get (ChannelSftp.java:995)
в TestSFTPinJava.main (TestSFTPinJava.java:29)
Я не уверен, как указать место в моей локальной системе, где будет сохранен файл.
sftpChannel.put ("C: \\ Users \\ mona \\ Documents \\ localCopy.txt");
мне не подходит.
Пожалуйста, помогите с предложениями, спасибо!