从d:而不是c运行程序时,系统找不到指定的路径:

时间:2015-05-09 20:59:09

标签: java processbuilder

我在c:盘上有一个用于测试内容的文件夹,但我的主项目在我的d:磁盘上。但是现在我得到了相同的错误,而代码是相同的,经过一些研究,我发现它是由于位置。但有没有解决这个问题?我知道我可以重新安置我的项目,但必须有一些解决方案。

我注意到的第二件事是我正在调试。当我使用clean(netbeans)时,ProcessBuilder值中的字符串只会改变。这怎么可能。我还是java的新手,现在想要为什么这个东西会像这样。

这是我的代码

 public class CmdTest {

    public static void main(String[] args) throws Exception {

        ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "D: && cd program Files\\wkhtmltopdf\\bin && dir");

        builder.redirectErrorStream(true);
        Process p = builder.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }

}

1 个答案:

答案 0 :(得分:0)

解决方案非常简单。

public class CmdTest {

    public static void main(String[] args) throws Exception {

        ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c", "D: && cd program Files\\wkhtmltopdf\\bin && dir");

        // Here you need to set the directory in my case D:
        pb=pb.directory(new File("D:\\"));
        pb.redirectErrorStream(true);
        Process p = pb.start();
        BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
        String line;
        while (true) {
            line = r.readLine();
            if (line == null) { break; }
            System.out.println(line);
        }
    }

}