From 1446d10795bc1eda0878e42d61dbe7f296c3f3cf Mon Sep 17 00:00:00 2001 From: xyli Date: Fri, 3 Mar 2023 15:10:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B5=8B=E8=AF=95=E7=B1=BBTe?= =?UTF-8?q?stJschExec=20=20=E6=B5=8B=E8=AF=95=E6=96=B9=E6=B3=952?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/TestJschExec.java | 39 +++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/test/java/TestJschExec.java b/src/test/java/TestJschExec.java index 443b989..e9debb9 100644 --- a/src/test/java/TestJschExec.java +++ b/src/test/java/TestJschExec.java @@ -167,5 +167,44 @@ public class TestJschExec { System.out.println("结束 " + result[0] + " " + error[0]); } + @Test + public void test2() throws IOException, JSchException { + Charset charset = CharsetUtil.CHARSET_UTF_8; + Session session = JschUtil.createSession("192.168.1.8", 22, "root", "123456+"); + ChannelExec channel = (ChannelExec) JschUtil.createChannel(session, ChannelType.EXEC); + // 添加环境变量 + channel.setCommand(cmd); + channel.setErrStream(System.err); + channel.setInputStream(System.in); + InputStream inputStream = channel.getInputStream(); + InputStream errStream = channel.getErrStream(); + channel.connect((int) TimeUnit.SECONDS.toMillis(5)); + + + String error = null; + String result = null; + + + try { + result = IoUtil.read(inputStream, charset); + } catch (Exception e) { + e.printStackTrace(); + if (!StrUtil.contains(e.getMessage(), "Pipe closed")) { + DefaultSystemLog.getLog().error("读取 exec 流发生异常", e); + result = "读取 exec 流发生异常" + e.getMessage(); + } + } + + try { + error = IoUtil.read(errStream, charset); + } catch (Exception e) { + e.printStackTrace(); + if (!StrUtil.contains(e.getMessage(), "Pipe closed")) { + DefaultSystemLog.getLog().error("读取 exec err 流发生异常", e); + error = "读取 exec err 流发生异常" + e.getMessage(); + } + } + System.out.println("结束 " + result + " " + error); + } } -- Gitee