运行 java 中特定目录中的 shell 命令

Running a shell command in a specific directory in java

我目前正在 Java 开发一个小软件,但我遇到了一个我无法解决的问题。简而言之,我在 ArchLinux 上,我需要在特定目录中 运行 "makepkg"。当然我试过

Runtime.getRuntime().exec("cd foo && makepkg"); 

但是我发现我不能在目录中cd。有人知道如何做到这一点?还是谢谢

流程执行者不是shell。它是为了启动一个进程而完成的。 可以帮助您的是从指定目录启动进程。

您可以创建一个 ProcessBuilder 实例并设置工作目录。 这是我的做法。

    ProcessBuilder pb = new ProcessBuilder("makepkg");
    pb.directory(new File("foo"));
    final Process process = pb.start();
    // then you read the flow with process.getInputStream() for example