一、JSch 简介
JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的 程序中。同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器。
二、java利用jcraft实现文件上传与下载
第一步:这里使用maven管理项目,所以需要引入maven支持,添加maven依赖

<!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
<dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.54</version>
</dependency>

第二步:写一个类sshconfiguration,作用是存储要登录机器的host,port,username.pwd,其实这里也可以使用一个配置文件来管理

public class SshConfiguration {private String host;private int    port;private String userName;private String password;getter AND setter(shenglve不写)
}

第三步:写一个类sshutil,实现上传下载

public class SshUtil {private ChannelSftp channelSftp;private ChannelExec channelExec;private Session session=null;private int timeout=60000;public SshUtil(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对象设置propertiessession.setTimeout(timeout);//设置超时session.connect();//通过Session建立连接}public void download(String src,String dst) throws JSchException, SftpException{//src linux服务器文件地址,dst 本地存放地址channelSftp=(ChannelSftp) session.openChannel("sftp");channelSftp.connect();channelSftp.get(src, dst);channelSftp.quit();}public void upLoad(String src,String dst) throws JSchException,SftpException{//src 本机文件地址。 dst 远程文件地址channelSftp=(ChannelSftp) session.openChannel("sftp");channelSftp.connect();channelSftp.put(src, dst);channelSftp.quit();}public void close(){session.disconnect();}
} 

第四,测试

public static void main(String[] args){SshConfiguration configuration=new SshConfiguration();configuration.setHost("172.17.1.232");configuration.setUserName("root");configuration.setPassword("root275858");configuration.setPort(22);try{
//            SshUtil sshUtil=new SshUtil(configuration);
//            sshUtil.download("/home/cafintech/Logs/metaData/meta.log","D://meta.log");
//            sshUtil.close();
//            System.out.println("文件下载完成");SshUtil sshUtil=new SshUtil(configuration);sshUtil.upLoad("D://meta.log","/home/cafintech/");sshUtil.close();System.out.println("文件上传完成");}catch(Exception e){e.printStackTrace();}}
}

JSch简介以及jsch实现文件上传下载相关推荐

  1. JSCH实现文件上传下载

    前言 最近项目中经常用的jsch来进行文件上传下载,在业务量大的时候,每次都去获取sftp连接很消耗资源,后面就想着使用连接池来解决. 简述 1)jsch是ssh2的一个纯Java实现.它允许你连接到 ...

  2. java jsch下载文件,JSch使用sftp协议实现服务器文件上传下载操作

    Jsch是什么? JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2 ...

  3. centos nfs java_CentOS下安装配置NFS并通过Java进行文件上传下载

    1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...

  4. springboot:实现文件上传下载实时进度条功能【附带源码】

    0. 引言 记得刚入行的时候,做了一个文件上传的功能,因为上传时间较久,为了用户友好性,想要添加一个实时进度条,显示进度.奈何当时技术有限,查了许久也没用找到解决方案,最后不了了之. 近来偶然想到这个 ...

  5. FastDFS实现文件上传下载实战

    正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...

  6. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

  7. [C# 网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器...

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  8. SpringMVC整合fastdfs-client-java实现web文件上传下载

    为什么80%的码农都做不了架构师?>>>    版权声明:本文为博主原创文章,转载请标明出处(http://blog.csdn.net/wlwlwlwl015)Thanks. 目录( ...

  9. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  10. 文件上传 java web_JavaWeb 文件上传下载

    1. 文件上传下载概述 1.1. 什么是文件上传下载 所谓文件上传下载就是将本地文件上传到服务器端,从服务器端下载文件到本地的过程.例如目前网站需要上传头像.上传下载图片或网盘等功能都是利用文件上传下 ...

最新文章

  1. 使用UPnP来穿透NAT使内网接口对外网可见
  2. angular.element()的用法
  3. Matlab:成功解决 Inner matrix dimension must agree
  4. dotnet安装包时找不到依赖关系_孩子总找妈妈,小心单方父母过渡依赖症,4个方法让父母更平等...
  5. Always keep in mind
  6. centos安装kvm
  7. 笔记本电脑销量排名_网友总结京东笔记本销量,联想高居第一,华为表现很出色...
  8. javascript学习系列(9):原数组发生变化的情况
  9. python股票网格交易法详解_股票最全“低买高卖”网格交易大法,值得收藏!
  10. Win32的虚拟内存分配函数
  11. js 设置style属性
  12. Spring MVC BindingResult异常
  13. 铃声截取软件android6,铃声剪辑
  14. Java开源框架Netty
  15. Excel设置图片固定在某个单元格内部
  16. pygame-KidsCanCode系列jumpy-part8-记录历史最高分
  17. 电磁场与仿真软件(34)
  18. AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE——ViT全文翻译
  19. 链表和动态申请内存空间
  20. RK3308 Linux UAC与ADB 复合同时使用

热门文章

  1. speechSynthesis强制使用Chrome中的Google小姐中文语音
  2. SOA架构与微服务架构到底是什么?以及对应的一些常用的框架简介
  3. 武汉市高新技术企业认定可以享受哪些税收优惠政策?认定条件如何?
  4. android allow usb debugging,远程调试Android设备 - Chrome 开发者工具中文文档
  5. c语言教学系统设计报告,C语言课程设计报告-范例Word版
  6. androidui设计基础ppt,网易的朋友给我这份339页的Android面经
  7. Linux出现ping不通外网、xshell解决方案
  8. 一周极客热文:Java开发的10位牛人
  9. Autodesk 3dsmax 下载!亲测有效!
  10. (声纳+惯性+视觉)Sonar Visual Inertial SLAM of Underwater Structures