当前位置: 首页 > 工具软件 > jail-shell > 使用案例 >

Java 执行 Shell 工具方法

尹正奇
2023-12-01

Java 执行 Shell 脚本

ssh monitor@192.168.1.10 "touch /home/xiang/test.text"
 String[] queryParams = new String[] {
                "ssh"
                ,"monitor@192.168.1.10"
                ,"touch"
                ,"/home/xiang/test.text"
        };
exeCommand(queryParams);
public static int exeCommand(String[] cmdarray) throws Exception {

        try {

            //单独的进程中执行指定命令和变量
            Process ps = Runtime.getRuntime().exec(cmdarray);

            /**
             * 1.JVM会启一个Process,所以我们可以通过调用Process类的以下方法,
             * 得知调用操作是否正确执行
             * 2.导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止
             */
            int status = ps.waitFor();

            log.info("脚本执行状态:"+status);

            if (status == 0) { //表示执行成功
                log.info("脚本执行成功!");
                return status;
            }

            //读取错误消息
            try (
                    BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream()));
            ){
                StringBuffer sb = new StringBuffer();
                String line = null;

                while ((line = br.readLine()) != null) {
                    sb.append(line).append("\n");
                }

                log.error("执行脚本失败,失败消息:"+sb.toString());

                return status;
            } catch (Exception e) {
                throw e;
            }

        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }
 类似资料: