JSCH执行linux命令
pom.xml 添加jar依赖
<!-- https://mvnrepository.com/artifact/com.jcraft/jsch --> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </dependency>
java类
package com.aliyun.utility.jsch; import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import java.io.InputStream; import java.util.Properties; public class JSCHUtil { private static JSCHUtil instance; private JSCHUtil() { } public static JSCHUtil getInstance() { if (instance == null) { instance = new JSCHUtil(); } return instance; } private Session getSession(String host, int port, String ueseName) throws Exception { JSch jsch = new JSch(); Session session = jsch.getSession(ueseName, host, port); return session; } public Session connect(String host, int port, String ueseName, String password) throws Exception { Session session = getSession(host, port, ueseName); session.setPassword(password); Properties config = new Properties(); config.setProperty("StrictHostKeyChecking", "no"); session.setConfig(config); session.connect(); return session; } public String execCmd(Session session, String command) throws Exception { if (session == null) { throw new RuntimeException("Session is null!"); } ChannelExec exec = (ChannelExec) session.openChannel("exec"); InputStream in = exec.getInputStream(); byte[] b = new byte[1024]; exec.setCommand(command); exec.connect(); StringBuffer buffer = new StringBuffer(); while (in.read(b) > 0) { buffer.append(new String(b)); } exec.disconnect(); return buffer.toString(); } public void clear(Session session) { if ((session != null) && session.isConnected()) { session.disconnect(); session = null; } } public static void main(String[] args) throws Exception { Session session = JSCHUtil.getInstance() .connect("10.9.9.135", 22, "yy", "yy"); String cmd = "cd /" + ";" + "ls -al |grep home"; String result = JSCHUtil.getInstance().execCmd(session, cmd); // ???????;?? System.out.println(result); System.exit(0); } }
不积跬步,无以至千里;不积小流,无以成江海。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程