http://blog.csdn.net/allen_zhao_2012/article/details/7941631

http://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html

http://xpenxpen.iteye.com/blog/2061869

http://blog.csdn.net/fyqcdbdx/article/details/23863793

http://blog.csdn.net/u013256816/article/details/52701563?utm_source=gold_browser_extension

SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。

ChannelSftp类是JSch实现SFTP核心类,它包含了所有SFTP的方法,如:
put():      文件上传
get():      文件下载
cd():       进入指定目录
ls():       得到指定目录下的文件列表
rename():   重命名指定文件或目录
rm():       删除指定文件
mkdir():    创建目录
rmdir():    删除目录
等等(这里省略了方法的参数,put和get都有多个重载方法,具体请看源代码,这里不一一列出。)

一个简单的jsch链接Linux并执行命令的utils。

  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. import com.jcraft.jsch.Channel;
  6. import com.jcraft.jsch.ChannelExec;
  7. import com.jcraft.jsch.JSch;
  8. import com.jcraft.jsch.JSchException;
  9. import com.jcraft.jsch.Session;
  10. public class ShellUtils {
  11. private static JSch jsch;
  12. private static Session session;
  13. /**
  14. * 连接到指定的IP
  15. *
  16. * @throws JSchException
  17. */
  18. public static void connect(String user, String passwd, String host) throws JSchException {
  19. jsch = new JSch();
  20. session = jsch.getSession(user, host, 22);
  21. session.setPassword(passwd);
  22. java.util.Properties config = new java.util.Properties();
  23. config.put("StrictHostKeyChecking", "no");
  24. session.setConfig(config);
  25. session.connect();
  26. }
  27. /**
  28. * 执行相关的命令
  29. * @throws JSchException
  30. */
  31. public static void execCmd(String command, String user, String passwd, String host) throws JSchException {
  32. connect(user, passwd, host);
  33. BufferedReader reader = null;
  34. Channel channel = null;
  35. try {
  36. while (command != null) {
  37. channel = session.openChannel("exec");
  38. ((ChannelExec) channel).setCommand(command);
  39. channel.setInputStream(null);
  40. ((ChannelExec) channel).setErrStream(System.err);
  41. channel.connect();
  42. InputStream in = channel.getInputStream();
  43. reader = new BufferedReader(new InputStreamReader(in));
  44. String buf = null;
  45. while ((buf = reader.readLine()) != null) {
  46. System.out.println(buf);
  47. }
  48. }
  49. } catch (IOException e) {
  50. e.printStackTrace();
  51. } catch (JSchException e) {
  52. e.printStackTrace();
  53. } finally {
  54. try {
  55. reader.close();
  56. } catch (IOException e) {
  57. e.printStackTrace();
  58. }
  59. channel.disconnect();
  60. session.disconnect();
  61. }
  62. }
  63. }

Java中com.jcraft.jsch.ChannelSftp讲解的更多相关文章

  1. 关于java中getClass()和getSuperClass()的讲解

    为了讲解这个问题,我们先来看一下下面的代码: package com.yonyou.test; import java.util.Date; class Test extends Date{ priv ...

  2. 关于java中assert(断言)的使用讲解

    说明:写的不是很全面,有任何问题请留言,多交流,谢谢! 1.eclipse.myeclipse开启assert(断言),默认是关闭,如下: 说白了就是设置一下jvm的参数,参数是-ea或者-enabl ...

  3. Java中的intern变量的讲解

    一般我们变成很少使用到 intern这个方法,今天我就来解释一下这个方法是干什么的,做什么用的 首先请大家看一个例子: public static void main(String[] args) t ...

  4. 有关java中的try{}catch(){}的讲解

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_38225558/article/d ...

  5. com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:\D:\development\ideaProjects\salary-card\target\salary-card-0.0.1-SNAPSHOT.jar!\BOOT-INF\classes!\keystore\login_id_rsa 资源未找到

    com.jcraft.jsch.JSchException: java.io.FileNotFoundException: file:\D:\development\ideaProjects\sala ...

  6. 第五节:详细讲解Java中的接口与继承

    前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...

  7. 第四节:详细讲解Java中的类和面向对象思想

    前言 大家好,给大家带来详细讲解Java中的类和面向对象思想的概述,希望你们喜欢 类和面向对象 在Java中怎样理解对象,创建对象和引用:什么是引用,对于基础学习的同学,要深入了解引用.示例:Stri ...

  8. 第九节:详细讲解Java中的泛型,多线程,网络编程

    前言 大家好,给大家带来详细讲解Java中的泛型,多线程,网络编程的概述,希望你们喜欢 泛型 泛型格式:ArrayList list= new ArrayList(); ArrayList list= ...

  9. 第八节:详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架

    前言 大家好,给大家带来详细讲解Java中的异常处理情况与I/O流的介绍以及类集合框架的概述,希望你们喜欢 JAVA 异常 try...catch...finally结构的使用方法 class Tes ...

随机推荐

  1. 第四篇:GPU 并行编程的存储系统架构

    前言 在用 CUDA 对 GPU 进行并行编程的过程中,除了需要对线程架构要有深刻的认识外,也需要对存储系统架构有深入的了解. 这两个部分是 GPU 编程中最为基础,也是最为重要的部分,需要花时间去理 ...

  2. nested exception is org.springframework.beans.factory.BeanCreationException: 不能注入对象 创建对象失败 spring

    [出现错误的背景] 在使用Spring+SpringMVC+Mybatis SSM集成框架时,服务器启动就会报错. [错误根源] XML配置错误. [解决方案] 第一步.查找springmvc.xml ...

  3. Windows下Mysql主从配置(Mysql5.5)

    主数据库IP:192.168.3.169从数据库IP:192.168.3.34 主数据库配置my.inin: 在[mysqld]下添加配置数据:server-id=1     #配一个唯一的ID编号, ...

  4. MYSQL系列之(二)

    上一篇文章讲的是mysql的基本操作,这一篇会有一点难以理解,本节主要内容mysql视图,存储过程,函数,事务,触发器,以及动态执行sql 视图view 视图是一个虚拟表,其内容由查询定义.同真实的表 ...

  5. Add a try-catch with Mono Cecil

    Adding exception handlers with Mono.Cecil is not difficult, it just requires you to know how excepti ...

  6. Sql Server 关于SET IDENTITY_INSERT的问题

    想要将值插入到自动编号(或者说是标识列,IDENTITY)中去,需要设定 SET IDENTITY_INSERT 示例: 1.首先建立一个有标识列的表: CREATE TABLE products ( ...

  7. Python GUI--Tkinter实践

    之前写了Testlink自动执行程序,现使用Tkinter加上GUI试试,想要实现如下图功能 可以实现通过选择要执行的url及报告url自动执行用例,或可以直接写报告结果内容 因项目原因,只列出部分代 ...

  8. Android通知栏的高度获取

    public static int getStatusBarHeight(Context context){ Class<?> c = null; Object obj = null; F ...

  9. SSH电力项目三 - Dao层、service层查询实现(HQL)

    底层方法封装:模糊查询,姓张的人 查询思路:select * from elec_text o           #Dao层     where o.textName like '%张%'     ...

  10. IDEA 配置

    配置sublime主题: 击链接 http://www.riaway.com,选择并下载自己喜欢的主题 file -->import setting  到刚刚下载的主题jar包,之后导入,重起i ...