ccat 2009-07-24 17:33
浏览 322
已采纳

java调用dos命令,如何将结果返回给java?

用 Process p = Runtime.getRuntime().exec(cmd); 执行某命令后,在dos窗口中有一大段结果,java如何获得这个结果呢?

[b]问题补充:[/b]
:o 我没说清楚,是执行的某一exe文件,并不是执行 “cmd”这个命令。

String[] cmd = {"cmd", "/k start d:\rm\"+o};
其中String o 为 exe 程序名 后面带有参数。

这个exe本身在dos下执行,执行完毕在dos窗口内打印执行结果。

我的目的是取得打印的结果。

按pan_java的方法只能得到我的java程序的运行目录。

[b]问题补充:[/b]
再次感谢 pan_java 对该问题的关注。我按照你新写的方法,结果为

[color=blue]
info

E:\workspace\RealMediaEditorRCP>
error info
[/color]

打印出的是java程序的路径。

我用ipconfig进行测试可以打印出正确结果。

不知道哪有问题。

  • 写回答

8条回答 默认 最新

  • fdsafds 2009-07-25 11:53
    关注

    [code="java"]public class Test {

    public static void main(String args[]) throws IOException,
            InterruptedException {
        Process p = Runtime.getRuntime().exec("javac");
        Thread.sleep(5000);
        InputStream in = p.getInputStream();
        //有错误时
        InputStream err = p.getErrorStream();
        byte[] barry = new byte[in.available()];
        byte[] errarry = new byte[err.available()];
        in.read(barry);
        in.close();
        err.read(errarry);
        err.close();
        String str = new String(barry);
        String errstr = new String(errarry);
        System.out.println("info");
        System.out.println(str);
        System.out.println("error info");
        System.out.println(errstr);
    
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集