首页 > 解决方案 > 如何让 java 在 Mac 上运行终端命令?(回声命令)

问题描述

你如何在 Mac 上运行 java 运行命令?我看到了一些难以理解的复杂命令示例。如果我想从 java 运行一个简单的 echo 命令,我该怎么做?还没有使用 osascript。只是想看看如何将回显从 java 发送到终端。

public static void main(String[] args) throws IOException {
    ProcessBuilder x = new ProcessBuilder("echo"," hi");
    x.start();
}

这是我尝试过的代码,但它不起作用。我认为这个问题可以帮助那些试图学习 ProcessBuilder 基础知识的人。

标签: javamacosterminalprocessbuilder

解决方案


我在 Windows 上,所以下面的代码使用 Windows echo。我希望您知道 Mac echo 命令,以便您可以用您的命令替换我的命令。

import java.io.IOException;
import java.lang.ProcessBuilder;

public class PrcBldT2 {

    public static void main(String[] args) {

        // This command is for Windows operating system.
        // For MacOS, try: new ProcessBuilder("echo", "hi")
        ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "echo", "hi");

        pb.redirectError(ProcessBuilder.Redirect.INHERIT);
        pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
        try {
            Process p = pb.start();
            int result = p.waitFor();
            System.out.println("Exit status = " + result);
        }
        catch (IOException | InterruptedException x) {
            x.printStackTrace();
        }
    }
}

请注意,命令中的每个单词都是一个单独的字符串。命令输出将echo被重定向到System.out.


推荐阅读