java执行Linux命令的方法

网友投稿 274 2023-08-06


java执行Linux命令的方法

本文实例讲述了java执行linux命令的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

public class StreamGobbler extends Thread { 

     

    InputStream is; 

    String type; 

 

    public StreamGobbler(InputStream is, String type) { 

        this.is = is; 

        this.type = type; 

    } 

 

    public void run() { 

        try { 

            InputStreamReader isr = new InputStreamReader(is); 

            BufferedReader br = new BufferedReader(isr); 

            String line = null; 

            while ((line = br.readLine()) != null) { 

                if (type.equals("Error")) { 

                    System.out.println("Error pTtLsv  :" + line); 

                } else { 

                    System.out.println("Debug:" + line); 

                } 

            } 

        } catch (IOException ioe) { 

            ioe.printStackTrace(); 

        } 

    } 

private void shell(String cmd)

{

        String[] cmds = { "/bin/sh", "-c", cmd };

        Process process;

        try

        {

            process = Runtime.getRuntime().exec(cmds);

            StreamGobbler errorGobbler = new StreamGobbler(process.getErrorStreapTtLsvm(), "Error");

            StreamGobbler outputGobbler = new StreamGobbler(process.getInputStream(), "Output");

            errorGobbler.start();

            outputGobbler.start();

            try

            {

                process.waitFor();

            }

            catch (InterruptedException e)

            {

                e.printStackTrace();

            }

        }

        catch (IOException e)

        {

            e.printStackTrace();

        }

}

其中参数 cmd 为Linux命令。每次只能执行一条命令。

1.Java Runtime.exec()注意事项:

① 永远要在调用waitFor()方法之前读取数据流

② 永远要先从标准错误流中读取,然后再读取标准输出流

2.最好的执行系统命令的方法就是写个bat文件或是shell脚本。

希望本文所述对大家的Java程序设计有所帮助。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java实现创建缩略图、伸缩图片比例生成的方法
下一篇:java中enum的用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~