我正在尝试使用 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\"");
编辑
请查看这篇有用的文章,了解此过程中出现的提示和陷阱:when runtime.exec() won't .文章中的代码有点过时,但这些概念在今天和当时一样切题。强烈推荐。
关于java - 使用 ProcessBuilder 运行 msys.bat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442118/