"如何使用Jsch复制文件?" 问题是第一个到位的.由于使用Jsch很复杂且容易出错并且工作水平很低,因此您需要编写多行来编写简单的scp工作.
那么,如何在Java中使用尽可能少的代码行实现scp(甚至是sftp)并且不违反DRY原则?
您可以使用Ant scp任务使用的库:
package org.example.scp;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.optional.ssh.Scp;
public class ScpCopyExample {
public void downloadFile( String remoteFilePath, String localFilePath ) {
Scp scp = new Scp();
scp.setFile("username:password@host.example.org:" + remoteFilePath);
scp.setLocalTofile(localFilePath);
scp.setProject(new Project()); // prevent a NPE (Ant works with projects)
scp.setTrust(true); // workaround for not supplying known hosts file
scp.execute();
}
public static void main(String[] args) {
ScpCopyExample scpDemo = new ScpCopyExample();
scpDemo.downloadFile("~/test.txt", "testlocal.txt");
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的类路径中使用以下jar执行此操作:
此示例可以轻松扩展为上载文件或使用SFTP.
| 归档时间: |
|
| 查看次数: |
3687 次 |
| 最近记录: |