通过java applciation从内部调用一个命令行工具

我有一个命令行工具,我想从一个Java应用程序启动。 然后我的应用程序应该等待命令行工具返回/完成。 我将在Windows,Mac和Linux上部署我的应用程序,我的应用程序应该能够在每个平台上调用命令行工具。 我如何正确地从我的Java应用程序调用它?

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(); 

使用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); } 

您可以使用Runtime类来启动命令行程序。 您应该能够在Win / Mac / Linux中使用,确保您运行的命令行程序始终位于PATH中。

  Runtime rt = Runtime.getRuntime(); Process proc; proc = rt.exec(cmdName); // Wait for the command to complete. exitVal = proc.waitFor();