java如何执行Linux命令

来源:爱站网时间:2020-01-17编辑:网友分享
今天爱站小编将为大家介绍java执行Linux命令的方法,相信很多小伙伴们对于这个问题都是非常陌生的,那么接下来的内容中我们就一起去看看java如何执行Linux命令的内容吧。

今天爱站小编将为大家介绍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   :" + 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.getErrorStream(), "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如何执行Linux命令了吗?大家在使用的过程中有任何不懂的地方都可以在下方给小编留言询问喔!

上一篇:java如何实现电脑定时关机

下一篇:Java读取文件的方法有哪些

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载