java使用Jsch实现从linux服务端下载文件
来源:互联网 发布:java里什么是流 编辑:程序博客网 时间:2024/06/05 22:40
java利用Jsch实现从linux服务端下载文件
直接贴代码,大家只需改下配置,且充分验证可行。
吐槽下,网上这类文章很多,但是没几个能用的(基本都是少依赖的类文件),真是坑啊!
1. 设计一个SshConfiguration类,如下:
package com.cheers.qa;public class SshConfiguration {private String host;private String username;private String password;private int port;public String getHost() {return host;}public void setHost(String host) {this.host = host;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public int getPort() {return port;}public void setPort(int port) {this.port = port;}}
2. 获取linux服务端文件代码如下:
package com.cheers.qa;import java.io.File;import java.util.Properties;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.JSchException;import com.jcraft.jsch.Session;import com.jcraft.jsch.SftpException;public class TranscodingAnalyzerDemo {private ChannelSftp channelSftp; private Session session=null; private int timeout=60000; public TranscodingAnalyzerDemo(SshConfiguration conf) throws JSchException{ System.out.println("try connect to "+conf.getHost()+",username: "+conf.getUsername()+",password: "+conf.getPassword()+",port: "+conf.getPort()); JSch jSch=new JSch(); //创建JSch对象 session=jSch.getSession(conf.getUsername(), conf.getHost(), conf.getPort());//根据用户名,主机ip和端口获取一个Session对象 session.setPassword(conf.getPassword()); //设置密码 Properties config=new Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);//为Session对象设置properties session.setTimeout(timeout);//设置超时 session.connect();//通过Session建立连接 } public void download(String src,String dst) throws JSchException, SftpException, InterruptedException{ //src linux服务器文件地址,dst 本地存放地址 //判断 如果本地dst如果存在,则先删除,然后在下载 File file = new File(dst);if(file.exists()){file.delete();Thread.sleep(1000);} channelSftp=(ChannelSftp) session.openChannel("sftp"); channelSftp.connect(); channelSftp.get(src, dst); System.out.println(">>>>>>>>>> File:"+src+" has downloaded success!"); channelSftp.quit(); } public void close(){ session.disconnect(); } public static void main(String[] args){ SshConfiguration configuration=new SshConfiguration(); configuration.setHost("192.168.1.26"); configuration.setUsername("cheersqa"); configuration.setPassword("123456"); configuration.setPort(22); try{ TranscodingAnalyzerDemo sshUtil=new TranscodingAnalyzerDemo(configuration); sshUtil.download("/opt/cheerstest1/1111111111","logs1_26"); sshUtil.close(); }catch(Exception e){ e.printStackTrace(); } }}
阅读全文
0 0
- java使用Jsch实现从linux服务端下载文件
- JAVA使用JSCH实现SFTP文件管理(上传、下载等)
- 使用JSch来上传或者下载linux上的文件
- JSch - Java实现的SFTP(文件下载详解篇)
- JSch - Java实现的SFTP(文件下载详解篇
- JSch - Java实现的SFTP(文件下载详解篇)
- JSch - Java实现的SFTP(文件下载详解篇)
- JSch - Java实现的SFTP(文件下载详解篇)
- JSch - Java实现的SFTP(文件下载详解篇)
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch - Java实现的SFTP(文件下载详解篇)
- JSch:纯JAVA实现SFTP文件上传和下载
- JSch:纯JAVA实现SFTP文件上传和下载
- 使用jsch实现文件上传
- Java使用JSCH实现对FTPS服务器文件操作
- JSCH SFTP 文件下载
- C++多态
- AS2的实际应用
- 深入浅出数据结构C语言版(16)——插入排序
- Darwin反射模块类图
- HTML-0908总结
- java使用Jsch实现从linux服务端下载文件
- c++ 字符切割
- Android SDK 更新问题
- android-studio gradle 下载不下来怎么办
- 二分图性质总结
- Mysql字段是否为NULL
- 配置vtk(Win8.1 + VS2012+VTK-5.10.1)
- vue饿了么学习-第九篇(Vue-resource)
- redis del命令支持正则删除(pattern)