Runtime.getRuntime()

来源:互联网 发布:涨乐理财软件下载 编辑:程序博客网 时间:2024/05/15 23:46
  • 权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://1504745673.blogbus.com/logs/77395808.html

    假如要在java程序里执行一条linux可以用下面的写法Java代码

    Processprocess=Runtime.getRuntime().exec(cmd);

    process.waitFor();

    Processprocess=Runtime.getRuntime().exec(cmd);process.waitFor();

    但是当碰到像cd这样的命令时,上面的这种写法切不管用,很多时候我们以为是命令输错了或是文件找不到。

    现在提供一种新的执行命令方法:Java代码

    Filewd=newFile("/bin");

    System.out.println(wd);

    Processproc=null;

    try{

    proc=runtime.getruntime().exec("/bin/bash",null,wd);

    }

    catch(IOExceptione){

    e.printStackTrace();

    }

    if(proc!=null){

    BufferedReaderin=newBufferedReader(newInputStreamReader(proc.getInputStream()));

    PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(proc.getOutputStream())),true);

    out.println("cd..");

    out.println("pwd");

    out.println("exit");

    try{

    Stringline;

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

    System.out.println(line);

    }

    proc.waitFor();

    in.close();

    out.close();

    proc.destroy();

    }

    catch(Exceptione){

    e.printStackTrace();

    }}

    Filewd=newFile("/bin");System.out.println(wd);Processproc=null;try{proc=runtime.getruntime().exec("/bin/bash",null,wd);}catch(IOExceptione){e.printStackTrace();}if(proc!=null){BufferedReaderin=newBufferedReader(newInputStreamReader(proc.getInputStream()));PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(proc.getOutputStream())),true);out.println("cd..");out.println("pwd");out.println("exit");try{Stringline;while((line=in.readLine())!=null){System.out.println(line);}proc.waitFor();in.close();out.close();proc.destroy();}catch(Exceptione){e.printStackTrace();}}
原创粉丝点击