当前位置:  开发笔记 > 编程语言 > 正文

scp来自java

如何解决《scp来自java》经验,为你挑选了5个好方法。

通过Java编程语言执行scp传输的最佳方法是什么?我似乎可以通过JSSE,JSch或充气城堡java库来执行此操作.这些解决方案似乎都没有一个简单的答案.



1> Tim Howland..:

我最终使用了Jsch - 它非常简单,似乎扩展得非常好(我每隔几分钟就抓取几千个文件).


@LloydMeinholz:我为这个库写了[Javadocs](http://epaul.github.com/jsch-documentation/simple.javadoc/).
我发现这个页面非常有用:http://www.jcraft.com/jsch/examples/

2> shikhar..:

插件:sshj是唯一理智的选择!请参阅以下示例开始:下载,上传.


只有理智的选择?
我使用sshj而不是Jsch,因为它的界面要简单得多。

3> abarax..:

看看这里

这是蚂蚁SCP任务的源代码."执行"方法中的代码是它的基本内容.这应该让您对所需要的内容有一个全面的了解.它使用JSch我相信.

或者,您也可以从Java代码直接执行此Ant任务.



4> Will..:

我用一些实用方法包装了Jsch,使它更友好并称之为它

Jscp

可在此处获取:https://github.com/willwarren/jscp

SCP实用程序tar一个文件夹,压缩它,并将其scp到某处,然后解压缩它.

用法:

// create secure context
SecureContext context = new SecureContext("userName", "localhost");

// set optional security configurations.
context.setTrustAllHosts(true);
context.setPrivateKeyFile(new File("private/key"));

// Console requires JDK 1.7
// System.out.println("enter password:");
// context.setPassword(System.console().readPassword());

Jscp.exec(context, 
           "src/dir",
           "destination/path",
           // regex ignore list 
           Arrays.asList("logs/log[0-9]*.txt",
           "backups") 
           );

还包括有用的类 - Scp和Exec,以及TarAndGzip,它们的工作方式几乎相同.



5> Fernando San..:

这是高级解决方案,无需重新发明。又快又脏!

1)首先,转到http://ant.apache.org/bindownload.cgi并下载最新的Apache Ant二进制文件。(如今,apache-ant-1.9.4-bin.zip)。

2)解压缩下载的文件并找到JAR ant-jsch.jar(“ apache-ant-1.9.4 / lib / ant-jsch.jar”)。在您的项目中添加此JAR。也是ant-launcher.jar和ant.jar。

3)转到Jcraft jsch SouceForge项目并下载jar。如今, jsch-0.1.52.jar。还要在您的项目中添加此JAR

现在,您可以轻松地在Java代码中使用Ant类Scp来通过网络复制文件或 SSHExec用于SSH服务器中的命令,轻松地用于。

4)代码示例Scp:

// This make scp copy of 
// one local file to remote dir

org.apache.tools.ant.taskdefs.optional.ssh.Scp scp = new Scp();
int portSSH = 22;
String srvrSSH = "ssh.your.domain";
String userSSH = "anyuser"; 
String pswdSSH = new String ( jPasswordField1.getPassword() );
String localFile = "C:\\localfile.txt";
String remoteDir = "/uploads/";

scp.setPort( portSSH );
scp.setLocalFile( localFile );
scp.setTodir( userSSH + ":" + pswdSSH + "@" + srvrSSH + ":" + remoteDir );
scp.setProject( new Project() );
scp.setTrust( true );
scp.execute();

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有