运行 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
我目前正在 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