我在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);
}
}
}
答案 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);
}
}
}