当上一个目录不在根目录(ftp home)中时,JSch 的 SFTP 通道无法更改目录。它仅发生在某些 SFTP 服务器上,而不是全部发生。
例如目录结构是这样的:
- /
- 1级
- 2级
- 2级
- 1级
cd level-1
(好的)
cd level-2
(失败)
它抛出这样的异常
4: Folder not found: /level-1/level-2
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2569)
at com.jcraft.jsch.ChannelSftp._realpath(ChannelSftp.java:2100)
at com.jcraft.jsch.ChannelSftp.cd(ChannelSftp.java:315)
有错误的 SFTP 服务器/
作为root的真实路径返回。没有失败的另一台服务器返回完整路径列表/usr/account
。