吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1655|回复: 3
收起左侧

[求助] java执行linux命令如何判断一条命令是执行成功还是失败?

[复制链接]
ppgjx 发表于 2022-2-10 23:47
有三种状态,1是成功 2是系统级别失败,也就是抛出异常 比如找不到系统命令  3还有一种是本身命令抛出的错误 比如pip找不到路径安装包 好像没有办法捕获 还会显示成功

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

unmask 发表于 2022-2-11 00:32
首先,需要明确java调用的是本地shell命令还是远程shell命令?
如果是本地的话,使用ProcessBuilder:
[Java] 纯文本查看 复制代码
ProcessBuilder pb = new ProcessBuilder();
pb.command("sh", "-c", "ls");
pb.directory(new File(SHELL_FILE_DIR));
try {
    Process p = pb.start();
    // shell脚本返回的结果
    int runningStatus = p.waitFor();
} catch (Exception e) {
    // exception
}


如果是远程的话,使用额外的jar包
[Java] 纯文本查看 复制代码
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;

Connection connection = new Connection(ip);
connection.connect();//连接
boolean isAuthenticated = connection.authenticateWithPassword(username, password);
if(isAuthenticated) {
    Session session = connection.openSession();
    session.execCommand("ifconfig");
    session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS, 1000 * 3600);
    int runningStatus = session.getExitStatus()
}

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
ppgjx + 1 + 1 热心回复!
PpaPingggg + 2 + 1 谢谢@Thanks!

查看全部评分

Vvvvvoid 发表于 2022-2-11 11:10
流 有三种 输入 in, 输出 out , 错误 error

看看命令后的返回流是哪种 就可以
肥猫警长 发表于 2022-2-11 14:31
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 18:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表