当运行一个来自d:而不是c:的程序时,系统找不到指定的路径
The system cannot find the path specified when running a program from d: instead of c:
我在我的 c: 盘上有一个用于测试的文件夹,但我的主要项目在我的 d: 盘上。但是现在我得到了同样的错误,而代码是相同的,经过一些研究我发现这是因为位置。但是有解决办法吗?我知道我可以重新定位我的项目,但必须有一些解决方案。
我注意到的第二件事是在调试时。ProcessBuilder 值中的字符串仅在我使用 clean(netbeans) 时发生变化。这怎么可能。我还是 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);
}
}
}
解决方法非常简单。
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);
}
}
}
我在我的 c: 盘上有一个用于测试的文件夹,但我的主要项目在我的 d: 盘上。但是现在我得到了同样的错误,而代码是相同的,经过一些研究我发现这是因为位置。但是有解决办法吗?我知道我可以重新定位我的项目,但必须有一些解决方案。
我注意到的第二件事是在调试时。ProcessBuilder 值中的字符串仅在我使用 clean(netbeans) 时发生变化。这怎么可能。我还是 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);
}
}
}
解决方法非常简单。
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);
}
}
}