我正在尝试使用ProcessBuilder在java中运行msys.bat。当我用我的程序运行.bat文件时,出现了以下错误:“找不到rxvt.exe或sh.exe二进制文件--正在中止。按任何键继续...”
这是代码,
ProcessBuilder Msys = new ProcessBuilder("C:/msys/1.0/msys.bat", "/C", "find \"C:/Users/Dan G/Desktop/hello.elf\"");
Process p = Msys.start();
String line;
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = r.readLine()) != null) {
System.out.println(line);
}
r.close();目标是编译我的一些C项目。上面的命令只是测试结果,而不是我想要完成的事情。
谢谢你的帮助!
发布于 2012-07-12 06:01:22
.bat文件不能独立运行,需要在Windows命令处理器上调用。所以不要忘了加载Windows命令处理器,在你的bat文件之前使用cmd.exe命令。
ProcessBuilder Msys = new ProcessBuilder("cmd.exe", "C:/msys/1.0/msys.bat",
"/C", "find \"C:/Users/Dan G/Desktop/hello.elf\"");编辑
请查看这篇有用的文章,了解此过程中出现的提示和陷阱:when runtime.exec() won't。这篇文章中的代码有点过时了,但这些概念在今天和当时一样贴切。强烈推荐。
https://stackoverflow.com/questions/11442118
复制相似问题