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

时间:2016-07-17 09:30:17

标签: java shell directory cd

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

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

但我发现我无法在目录中播放。有人知道如何做到这一点?不管怎样,谢谢

1 个答案:

答案 0 :(得分:1)

进程执行程序不是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