作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从 Linux/Windows 获取文件到 Windows 系统,并且我已经为此编写了代码。但似乎代码或 Jsch 本身存在一些问题。
String host = "<IP>";
int port = Integer.parseInt("22");
String userName = "<USERNAME>";
String password = "<PASSWORD>";
ChannelSftp sftpChannel = null;
try {
JSch jsch = new JSch();
Session session = jsch.getSession(userName, host, port);
session.setConfig("StrictHostKeyChecking", "no");
session.setPassword(password);
session.connect();
// open an SFTP channel
Channel channel = session.openChannel("sftp");
channel.connect();
sftpChannel = (ChannelSftp) channel;
File headerFolder = new File("/home/userName/testFiles");
if (!headerFolder.exists()) {
headerFolder.mkdirs();
}
sftpChannel.get("/d/myfile.txt", "/home/username/aFolder"); //windows to linux
} catch (JSchException e) {
//LOGGER.error(e.getMessage(), e);
e.printStackTrace();
} catch (SftpException e) {
//LOGGER.error(e.getMessage(), e);
e.printStackTrace();
}
2:文件不存在。
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846)
at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2198)
at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2215)
at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:913)
at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:873)
最佳答案
sftpChannel.get("/d/myfile.txt","/home/username/aFolder");
2: The file does not exist.
您的客户端尝试从 SFTP 服务器获取“/d/myfile.txt”,但服务器响应该文件不存在。您指出远程服务器是 Windows 系统,因此我假设您正在尝试获取“D:\myfile.txt”。看来这里有三种可能性:
SFTP 协议(protocol)使用类似 UNIX 的文件路径名模型,因此人们希望使用“/”作为分隔符,并且绝对文件名以“/”开头。如果“/d/myfile.txt”不是获取文件的正确路径,您应该检查 SFTP 服务器的文档和/或询问服务器管理员如何通过 SFTP 访问 D: 驱动器的根目录。
或者,您可以尝试使用交互式 SFTP 客户端登录服务器并查看哪些文件可见。如果您要 cd 到/目录并开始四处查看,远程文件的正确路径可能会变得显而易见。
关于java - 使用 JSch SFTP 下载文件时获取 "The file does not exist.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795153/
我是一名优秀的程序员,十分优秀!