【问题标题】:Executing cd and pwd in java program在java程序中执行cd和pwd
【发布时间】:2016-01-25 10:09:51
【问题描述】:

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

对此有何建议?

【问题讨论】:

    标签: java unix exec


    【解决方案1】:

    子进程不能更改父进程的工作目录。您可以使用ProcessBuilder.directory(File) 为子进程设置工作目录。类似的,

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-13
      • 2020-12-13
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 2012-06-13
      • 1970-01-01
      相关资源
      最近更新 更多