Java 如何使用JSch在SFTP服务器上复制文件?

Java 如何使用JSch在SFTP服务器上复制文件?,java,ssh,sftp,jsch,Java,Ssh,Sftp,Jsch,我面临的问题是将文件从一个SFTP文件夹复制(复制)到同一服务器上的另一个SFTP文件夹 所以,问题是:有没有一种有效的远程方法(即不向客户机复制数据,反之亦然) 我正在使用Java和。在SFTP中可以执行执行本地命令 ! cp a.txt a-backup.txt 由于JSch还可以提供SSH连接,所以连感叹号都没有意义。 对于代码,您可能会在中找到一些起点。Exec示例应该可以。SFTP协议本身只支持客户端和服务器之间的数据传输,而不支持服务器本身 不过,您可以使用底层SSH协议的其他部分

我面临的问题是将文件从一个SFTP文件夹复制(复制)到同一服务器上的另一个SFTP文件夹

所以,问题是:有没有一种有效的远程方法(即不向客户机复制数据,反之亦然)


我正在使用Java和。

在SFTP中可以执行
执行本地命令

! cp a.txt a-backup.txt
由于JSch还可以提供SSH连接,所以连感叹号都没有意义。
对于代码,您可能会在中找到一些起点。Exec示例应该可以。

SFTP协议本身只支持客户端和服务器之间的数据传输,而不支持服务器本身

不过,您可以使用底层SSH协议的其他部分(以及JSch的therof实现)在服务器上执行命令。在这种情况下,正如Joop所提到的,an是正确的使用对象。您可以将用于您的频道的同一频道用于任何数量的其他频道,例如exec频道。使用后请确保关闭所有频道。(更多信息,请查看JSch wiki页面


如果服务器不支持命令执行,例如,如果服务器配置为仅支持SFTP,则这当然不起作用。然后,您唯一的解决方案是下载并重新上载此文件。

请注意,我们需要的是远程命令,而不是本地命令,因此您的回答的前半部分在这里并不相关。(下半部分仍然有效,因此仍然+1。)[Ankaŭ,Saloton!]嗨,Joop,我已经按照你的建议实施了-一切正常。感谢你提供的信息。不幸的是,我没有足够的声誉来支持你的帖子,但无论如何,谢谢你:)@Paŭlo Ebermann-所有帖子都有一个有用的信息:)@OleksandrŭDJ:如果你认为答案解决了你的问题,将其标记为已接受(使用答案旁边的绿色复选标记图标)。