java ssh2 执行多条命令_java ganymed-ssh2,session 执行多条指令,最好可以在前一条的基础上,执行下一条。...

通过session.requestDumbPTY()和session.startShell()来模拟命令行,在通过io流操作

try {

session = conn.openSession();

session.requestDumbPTY();

session.startShell();

stdout = session.getStdout();

stderr = session.getStderr();

stdin = session.getStdin();

} catch (IOException e) {

e.printStackTrace();

}

io流操作

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(stdin));

bw.write(command + "\n\r");

bw.flush();

while (true) {

if ((stdout.available() == 0) && (stderr.available() == 0)) {

int conditions = session.waitForCondition(ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA

| ChannelCondition.EOF, 2000);

if ((conditions & ChannelCondition.EOF) != 0) {

if ((conditions & (ChannelCondition.STDOUT_DATA | ChannelCondition.STDERR_DATA)) == 0) {

break;

}

}

}

BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

while (true) {

String answer = br.readLine();

if (answer != null) {

Log.i("socket", "message call: " + answer);

} else {

break;

}

}

BufferedReader brErr = new BufferedReader(new InputStreamReader(stderr));

while (true) {

String answer = brErr.readLine();

if (answer != null) {

Log.i("socket", "execute: answer error = " + answer);

} else {

break;

}

}

}

取消

评论

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值