zoukankan      html  css  js  c++  java
  • 如何通过Java启动linux脚本

    linux脚本为:

    echo nihao,wo ai $1 and $2

    Java代码为:

    public class JavaExecuShell {
        public static void main(String[] args) {
            try {
                //准备脚本
                String cmd = "sh /root/test/test.sh "+args[0]+" "+args[1]; 
                System.out.println("cmd = "+ cmd);
                Process proc = Runtime.getRuntime().exec(cmd);
                /**
                 * 可执行程序的输出可能会比较多,而运行窗口的输出缓冲区有限,会造成waitFor一直阻塞。
                 * 解决的办法是,利用Java提供的Process类提供的getInputStream,getErrorStream方法
                 * 让Java虚拟机截获被调用程序的标准输出、错误输出,在waitfor()命令之前读掉输出缓冲区中的内容。
                 */
                String flag ;
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
                while ( (flag=bufferedReader.readLine()) != null){
                    System.out.println("result ---- "+flag);
                }
                bufferedReader.close();
                /**
                 * 等待脚本执行完成
                 */
                proc.waitFor();
                
            } catch (IOException | InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
  • 相关阅读:
    2021/3/16
    2021/3/15
    plist
    百度小程序更新管理
    uni-app v-for v-modal
    小程序中不能使用字符串模板吗
    条件编译
    百度app 和小程序版本关系
    uni-app 全局变量的几种实现方式
    canvas 换行处理
  • 原文地址:https://www.cnblogs.com/kpsmile/p/10490339.html
Copyright © 2011-2022 走看看