我有一个命令行工具,我想从java应用程序启动。然后我的应用程序应该等待命令行工具返回/完成。 我将在Windows,Mac和Linux上部署我的应用程序,我的应用程序应该能够在每个平台上调用命令行工具。 如何从我的java应用程序中正确调用它?
答案 0 :(得分: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 :(得分: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);
}
答案 2 :(得分:0)
您可以使用Runtime
类启动命令行程序。您应该能够在Win / Mac / Linux中使用,确保您运行的命令行程序始终位于PATH中。
Runtime rt = Runtime.getRuntime();
Process proc;
proc = rt.exec(cmdName);
// Wait for the command to complete.
exitVal = proc.waitFor();