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();
            }
        }
    }
  • 相关阅读:
    JAVA日常之三
    java将字符串存入oracle的Blob中
    java连接oracle数据库
    JAVA日常之二
    JAVA日常之一
    linux日常命令之三
    linux日常命令之二
    linux日常命令之一
    Python之路【第四十篇】:django日更
    Python之路【第三十九篇】:django日更
  • 原文地址:https://www.cnblogs.com/kpsmile/p/10490339.html
Copyright © 2011-2022 走看看