2011-03-29 4 views
3

Java 응용 프로그램에서 실행하려는 명령 줄 도구가 있습니다. 내 응용 프로그램은 명령 행 도구가 리턴/마칠 때까지 기다려야합니다. Windows, Mac 및 Linux에 내 응용 프로그램을 배포하고 내 응용 프로그램은 모든 플랫폼에서 명령 줄 도구를 호출 할 수 있어야합니다. Java 응용 프로그램에서 올바르게 호출하려면 어떻게해야합니까? 그것에 대해java applciation에서 명령 줄 도구를 호출하는 중

+0

모든 OS에서 사용할 수있는 하나의 "명령 줄 도구"또는 각각 다른 도구에서 사용할 수 있습니까? –

답변

1

사용 java.lang.Process의는 :

final Process process = Runtime.getRuntime().exec("yourprogram", null, outputDir); 
    final int exitCode = process.waitFor(); 
    if (exitCode != 0) { 
     throw new RuntimeException("program didnt exit with 0, but with " + exitCode); 
    } 
6

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/ProcessBuilder.html

http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Process.html

ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
Process p = pb.start(); 
p.waitFor(); 
+1

나는 [Runtime.exec()이 안되면] (http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html)의 모든 제안을 읽고 실행하는 것이 좋습니다. . 링크 된 기사는 '프로세스'를 다룰 때 일반적인 함정을 다룹니다. –

0

당신은 명령 줄 프로그램을 시작 Runtime 클래스를 사용할 수 있습니다. 실행중인 명령 행 프로그램이 항상 PATH에 있는지 확인하여 Win/Mac/Linux에서 사용할 수 있어야합니다.

  Runtime rt = Runtime.getRuntime(); 
      Process proc;    
      proc = rt.exec(cmdName); 

      // Wait for the command to complete. 
      exitVal = proc.waitFor(); 
관련 문제