我正在尝试使用 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 项目。上面的命令只是为了测试结果,而不是我想要完成的。
谢谢您的帮助!
.bat 文件不能单独运行,而是在 Windows 命令处理器上调用。因此,不要忘记在 bat 文件之前加载 Windows 命令处理器 cmd.exe。
ProcessBuilder Msys = new ProcessBuilder("cmd.exe", "C:/msys/1.0/msys.bat",
"/C", "find \"C:/Users/Dan G/Desktop/hello.elf\"");
Edit
请查看这篇有用的文章,了解此过程中出现的提示和陷阱:当runtime.exec()不会时 http://www.javaworld.com/jw-12-2000/jw-1229-traps.html。文章中的代码有点过时,但这些概念在今天和当时一样切题。强烈推荐。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)