2011-02-19 50 views

回答

3

How to run command-line or execute external application from Java

import java.io.*; 

public class Main { 

     public static void main(String args[]) { 

      try { 
       Runtime rt = Runtime.getRuntime(); 
       //Process pr = rt.exec("cmd /c dir"); 
       Process pr = rt.exec("c:\\helloworld.exe"); 

       BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream())); 

       String line=null; 

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

       int exitVal = pr.waitFor(); 
       System.out.println("Exited with error code "+exitVal); 

      } catch(Exception e) { 
       System.out.println(e.toString()); 
       e.printStackTrace(); 
      } 
     } 
} 
0

使用Runtime.getRuntime().exec()

3
Process p = Runtime.getRuntime().exec("cmd /C dir"); 
BufferedReader stdin = new BufferedReader(new InputStreamReader(p.getInputStream())); 
3

使用ProcessBuilder如。

Process p = new ProcessBuilder("myCommand", "myArg").start();

這在Java5的補充,它取代Runtime.getRuntime().exec()

+0

這修復了我從使用「Process p = Runtime.getRuntime()...」得到的一個奇怪的錯誤 - 它從自定義命令使用的文件名中刪除了一個空格,導致它變成了bork。但使用ProcessBuilder,它可以正常工作。謝謝! – rtfminc