在java程序中执行cd和pwd

时间:2016-01-25 02:03:49

标签: java unix exec

我有一个执行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");

对此有何建议?

1 个答案:

答案 0 :(得分:1)

子进程无法更改父进程的工作目录。您可以使用ProcessBuilder.directory(File)为子进程设置工作目录。像,

ProcessBuilder pb = new ProcessBuilder("pwd");
pb.directory(new File("test_dir"));
pb.inheritIO();
pb.start();