如何使用exec()方法在java代码中运行windows控制台应用程序?

如何使用exec()方法在java代码中运行windows控制台应用程序?,java,runtime.exec,Java,Runtime.exec,如何使用Runtime.getRuntime().exec() 我尝试: try { String[] callAndArgs = {"path\\program.exe","arg1","arg2","arg3"} System.out.println("before"); Process p = Runtime.getRuntime().exec(callAndArgs) System.out.println("in"); p.waitFor();

如何使用Runtime.getRuntime().exec()

我尝试:

try {
    String[] callAndArgs = {"path\\program.exe","arg1","arg2","arg3"}
    System.out.println("before");
    Process p = Runtime.getRuntime().exec(callAndArgs)
    System.out.println("in");
    p.waitFor();
    System.out.println("after");
} catch (IOException e) {
            System.out.println("catch io: " + e.getMessage());
        } catch (InterruptedException ie) {
            System.out.println("catch ie: " + ie.getMessage());
        }
这个程序不起作用。输出:

before
in
after
嗯?帮助;p

参见这篇(经典)文章:

也许这也有帮助()


这是一个只有链接的答案,如果(或当)链接死亡,它将没有任何用处。
import java.lang.* ;

 public class MyJavaClass
 {
 public void runCmd(String[] args)
 {
 String cmd = "/home_dir/./my_shell_script.sh" ;
 Runtime run = Runtime.getRuntime() ;
 Process pr = run.exec(cmd) ;
 pr.waitFor() ;
 BufferedReader buf = new BufferedReader( new InputStreamReader( pr.getInputStream() ) ) ;

 while ( ( String line ; line = buf.readLine() ) != null ) 
 {
 System.out.println(line) ;
 }

 }

 }