我有一个执行cd unix命令的java程序,如下所示:
Process p = Runtime.getRuntime().exec("/bin/sh -c cd test_dir");
现在当我尝试做一个pwd时,我得到了我的java程序所在的目录而不是改为的目录(应该是/ root / test_dir)
Process pr = Runtime.getRuntime().exec("pwd");
对此有何建议?
答案 0 :(得分:1)
子进程无法更改父进程的工作目录。您可以使用ProcessBuilder.directory(File)
为子进程设置工作目录。像,
ProcessBuilder pb = new ProcessBuilder("pwd");
pb.directory(new File("test_dir"));
pb.inheritIO();
pb.start();