Java连接Linux系统执行命令并且获取返回信息

qq_36256339 2016-10-24 11:14:13
我用的jsch 大概代码如下(手打大家凑合看):

String user = “123”;
String psw = "123";
JSch jsch = new JSch();
session = jsch.getSession(user, ip, 22);
session.setPassword(psw);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelExec channelExec = (ChannelExec)session.opeanChannel(("exec");
channelExec.setCommand("echo `env`");
channelExec.connect();
InputStream in = channelExce.getInputStream();
bufferedReader reader = new BufferedReader(new InputStreamReader(in,Charset.forName("ntf-8")));
String bug = null;
StringBuffer sb = new StringBuffer();
while((buf = reader.readLine()!=null){
sb.append(buf);
System,out.println(sb);
}
reader.close();
if(channelExec.isClosed&&channelExec!=null{
channelExec.disconnect();
}
if(session!=null&&session.isConnected()){
session.disconnect();

Eclipse 后台输出:


CRT上的实际的信息:



为什么会有这种结果 对比了一下,有一些值没有读取到,求大神指点一下!
...全文
409 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kayos 2020-03-26
  • 打赏
  • 举报
回复
代码错误太多 整理后的 public static void main(String[] args) throws Exception{ JSch jsch = new JSch(); Session session = jsch.getSession("root", "192.168.56.113", 22); session.setPassword("123qwe"); session.setConfig("StrictHostKeyChecking", "no"); session.connect(); ChannelExec channelExec = (ChannelExec)session.openChannel("exec"); channelExec.setCommand("ps -ef|grep java"); channelExec.connect(); InputStream in = channelExec.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in,Charset.forName("utf-8"))); String buf = null; StringBuffer sb = new StringBuffer(); while((buf = reader.readLine())!=null){ sb.append(buf); System.out.println(sb); } reader.close(); if(channelExec.isClosed()&&channelExec!=null){ channelExec.disconnect(); } if(session!=null&&session.isConnected()){ session.disconnect(); } }
qq_36256339 2016-10-25
  • 打赏
  • 举报
回复
有没有大神啊!!
qq_36256339 2016-10-24
  • 打赏
  • 举报
回复
如果用printStream打印命令的话 会获取全部信息,但是还有一些多余的信息
qq_36256339 2016-10-24
  • 打赏
  • 举报
回复
引用 2 楼 u011543235 的回复:
阿弥陀佛~~~~~~~~~~~~~~
?????

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧