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

通过java应用程序从内部调用命令行工具,java,windows,linux,macos,command-line,Java,Windows,Linux,Macos,Command Line,我有一个命令行工具,我想从java应用程序启动它。然后,我的应用程序应该等待命令行工具返回/完成。 我将在windows、mac和linux上部署我的应用程序,我的应用程序应该能够在每个平台上调用命令行工具。 如何从java应用程序中正确调用它?为此使用java.lang.Process: final Process process = Runtime.getRuntime().exec("yourprogram", null, outputDir); final int exi

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

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


您可以使用
运行时
类启动命令行程序。通过确保正在运行的命令行程序始终在路径中,您应该能够在Win/Mac/Linux中使用

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

            // Wait for the command to complete.
            exitVal = proc.waitFor();

是一个单一的“命令行工具”可以在所有操作系统上使用,还是每个操作系统都有不同的工具?我还建议您阅读并实现的所有建议。这篇链接文章介绍了处理
进程时常见的陷阱。
            Runtime rt = Runtime.getRuntime();
            Process proc;               
            proc = rt.exec(cmdName);

            // Wait for the command to complete.
            exitVal = proc.waitFor();