我需要执行一个exe文件,然后代入他的参数,如-b --target &&&&什么的但是执行Runtime.GetRuntime().exe("C:\\program files\\a.exe -help");
都没有反应了……这是出了什么问题啊?求教!!!

解决方案 »

  1.   

    Runtime.GetRuntime().exe("cmd /c C:\\program files\\a.exe -help");
    试试
      

  2.   

    String cmd[]={"C:\\program files\\a.exe","-help"};
    Runtime.GetRuntime().exec(cmd);
      

  3.   

    也就是说命令中的参数,都要列为单独的字符串,而不是连在一起的字符串。不过,如果你的a.exe是一个控制台程序的话,上面这样调用,是不会有显示窗口的。你可以获得它的标准输入输出流。
    如果你一定要看到一个控制台窗口的话。要如下做:
    String cmd[]={"start","C:\\program files\\a.exe","-help"};
    Runtime.GetRuntime().exec(cmd);
    但是要说明一下,如果你的a.exe程序运行结束后没有什么等待键盘确认后再退出的环节的话,那么你看到的窗口会闪一下就没了
      

  4.   


    谢谢!
    这样可以跑了~但是我要三个参数怎么办……?
    在cmd下面的指令是:a -b --target 123这样
    写成cmd[]={"c:\\Program Files\\a.exe","-b","--target","123"};
    就又没有反应了……
    求教!
      

  5.   

    试试这个:
    ProcessBuilder pb = new ProcessBuilder("cmd", "/c","C:\\program files\\a.exe","-help");
    Process pro = pb.start();
    InputStream is = pro.getInputStream();
    byte[] buff = new byte[1024];
    while(-1 != is.read(buff))
    {
        System.out.println(new String(buff).trim());
    }