通过java应用程序从内部调用命令行工具

时间:2011-03-29 09:17:15

标签: java windows linux macos command-line

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

3 个答案:

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