另一个问题很快就会出现,但这必须是一个非常明显的错误,我没有看到。我已经编写了一些代码来运行下面的批处理文件,但是我收到一条错误消息,说它找不到该文件,但我可以向您保证该文件存在于目录中!ProcessBuilder无法找到文件?
public class Pull {
public void pullData() throws IOException {
ProcessBuilder pb = new ProcessBuilder("adb.bat");
File f = new File("C:\\");
pb.directory(f);
Process p = pb.start();
}
public static void main(String[] args) throws IOException {
Pull pull = new Pull();
pull.pullData();
}
}
,这里是错误消息
Exception in thread "main" java.io.IOException: Cannot run program "adb.bat" (in directory "C:\"): CreateProcess error=2, The system cannot find the file specified
所以,adb.bat是在C:\,对不对?尝试将其放置在项目文件夹 – keyser 2012-03-23 22:37:32
中或其副本不在其中。我正确使用processbuilder吗? – Rookie 2012-03-23 22:47:10
您是否尝试将批处理文件的内容作为参数传入到您的'ProcessBuilder'中?例如,如果“adb.bat”执行了类似“java -version”的操作,你是否尝试过使用新的ProcessBuilder(“java”,“ - server”)?我想知道,如果Java正在尝试像处理可执行文件一样对待adb.bat,即使它实际上只是一个基于文本的脚本。 – CodeBlind 2012-03-23 22:58:56