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条)

报告相同问题?

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程