基本上,我需要通过 java 程序执行 2 个命令,就像您只是将其输入终端一样。
很像
cd /Users/nameOfUser/Desktop/someFolder/someSubFolder
然后是我想在该目录中执行的另一个命令。目前我正在这样做:
Process navigate = Runtime.getRuntime().exec("cd /Users/nameOfUser/Desktop/someFolder/someSubFolder");
Process doSomething = Runtime.getRuntime().exec("commandInThatDirectory");
这不起作用,它不会引发异常,但第二个进程似乎没有发生在之前指定的目录中。我对流程和运行时很陌生,所以请耐心等待:P。
它们是一种在同一终端实例中连续执行命令的方法,还是至少是一个命令的格式,您可以在其中指定另一个命令执行的目录?我是一名 Linux 用户,所以我不太了解 mac 终端,抱歉。
最佳答案
可以这样做。您可以通过在命令之间放置分号来运行任何命令。
public class Main {
public static void main(String[] args) throws IOException {
ProcessBuilder pb1 = new ProcessBuilder(
"bash",
"-c",
"cd /Users/nameOfUser/Desktop/someFolder/someSubFolder;commandInThatDirectory");
pb1.redirectErrorStream(true);
Process p = pb1.start();
}
}
关于java - 通过 java Runtime 在 mac 终端中执行背对背命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36210454/