🍏使用Java访问Linux服务器,并执行命令
一、引入依赖
1 2 3 4 5 6 | <!--Java连接Linux服务器依赖--> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency> |
二、使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | package com.zhixi; import com.jcraft.jsch.Channel; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import java.io.InputStream; public class SSHExample { public static void main(String[] args) { String host = "xxx" ; // 远程服务器IP地址 String user = "root" ; // 远程服务器用户名 String password = "xxx" ; // 远程服务器密码 // 要执行的命令 StringBuilder command = new StringBuilder( "pwd;" ); command.append( "ls -la;" ); try { JSch jsch = new JSch(); Session session = jsch.getSession(user, host, 22); // 创建一个SSH会话 session.setPassword(password); // 设置会话密码 session.setConfig( "StrictHostKeyChecking" , "no" ); // 设置会话配置 session.connect(); // 连接会话 Channel channel = session.openChannel( "exec" ); // 打开一个exec通道 ((ChannelExec) channel).setCommand(command.toString()); // 设置要执行的命令 channel.setInputStream( null ); ((ChannelExec) channel).setErrStream(System.err); // 设置错误输出流 InputStream inputStream = channel.getInputStream(); channel.connect(); // 连接通道 byte [] buffer = new byte [1024]; while ( true ) { while (inputStream.available() > 0) { int i = inputStream.read(buffer, 0, 1024); if (i < 0) break ; System. out .print( new String(buffer, 0, i)); // 输出结果到控制台 } if (channel.isClosed()) { if (inputStream.available() > 0) continue ; System. out .println( "exit-status: " + channel.getExitStatus()); // 输出退出状态 break ; } try { Thread.sleep(1000); } catch (Exception ee) { } // 等待一秒钟 } channel.disconnect(); // 断开通道 session.disconnect(); // 断开会话 } catch (Exception e) { e.printStackTrace(); // 输出错误信息 } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
2021-03-03 二叉排序树的添加与删除