当前位置:网站首页 > 技术博客 > 正文

js・jc・ロリ




欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。


欢迎跳转到本文的原文链接:https://honeypps.com/java/jsch-quick-start/

JSch 是SSH2的一个纯Java实现。它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等。你可以将它的功能集成到你自己的 程序中。同时该项目也提供一个J2ME版本用来在手机上直连SSHD服务器。

官网:http://www.jcraft.com/jsch/中有很多例子http://www.jcraft.com/jsch/examples/,这里先采用(已做修改)其中2个来进行简单论述,希望对大家有所帮助。
本文采用的jsch版本是0.1.51. 下载地址:http://sourceforge.net/projects/jsch/files/jsch/0.1.54/jsch-0.1.54.zip/download。
本文采用的linux操作系统是CentOS6.5.

TIPS: 查看Linux操作系统(内核)版本可以使用:uname -a; uname -r; cat /etc/issue; cat /etc/redhat-release等命令。

  • USER:所连接的Linux主机登录时的用户名
  • PASSWORD:登录密码
  • HOST:主机地址
  • DEFAULT_SSH_PROT=端口号,默认为22
 
    

运行结果:

 
    

输入ls查看:

 
    

这样就和在原linux系统中一样使用shell功能了。

如果需要跳过如下的检测:

 
    

只需要在程序中加入相应的代码:

 
    

运行结果:

 
    

第二个例子:运行一条shell指令,这里就那“ls”做例子好了。

No more talk, show you the code:

 
    

运行结果:

 
    

第二个例子相比于第一个例子来说将UserInfo采用static class的方式提取出来,这样更直观一点。

JSch是以多线程方式一下,所以代码在connect后如果不disconnect channel和session,以及相关stream, 程序会一直等待,直到关闭。

需要注意的一个问题,相关的Stream和Channel是一定要关闭的,那么应该在什么时候来关?执行connect后,JSch接受客户端结果需要一定的时间(以秒计),如果马上关闭session就会发现什么都没接受到或内容不全。

还有一点注意,使用shell时,看到执行后没有结果,解决办法是在命令行后加上" "字符,server端就认为是一条完整的命令了。

最后将第一个和第二个例子合并,并提取一些公用模块,以便更好的理解和使用:

 
    

测试代码:

 
    

测试结果:

 
    

还有解释查看一下左边是否有个shell.txt以及shell.txt是否有相应的内容。

欢迎跳转到本文的原文链接:https://honeypps.com/java/jsch-quick-start/


欢迎支持笔者新作:《深入理解Kafka:核心设计与实践原理》和《RabbitMQ实战指南》,同时欢迎关注笔者的微信公众号:朱小厮的博客。


版权声明


相关文章:

  • 移位指令的用途2025-06-30 13:30:02
  • oracle rownum是什么类型2025-06-30 13:30:02
  • 数据库事务有什么功能2025-06-30 13:30:02
  • java单元测试框架都有哪些2025-06-30 13:30:02
  • vcap电容2025-06-30 13:30:02
  • windows打开组策略编辑器2025-06-30 13:30:02
  • 域名解析@是什么2025-06-30 13:30:02
  • 异步fifo实现2025-06-30 13:30:02
  • linux性能指标2025-06-30 13:30:02
  • ubuntu安装libreadline2025-06-30 13:30:02