可能重复: 如何从Java应用程序运行批处理文件?
是否有运行Windows批处理文件的Java类?例如,启动批处理文件并接收批处理运行的结果?
发布于 2012-10-24 15:30:10
Apache Commons Exec是一个很好的方法。解决了如果使用纯ProcessBuilder或Runtime.exec会遇到的几个问题。
根据项目说明:
从Java执行外部进程是一个众所周知的问题领域。它在很大程度上依赖于平台,并要求开发人员知道和测试平台特定的行为,例如在Windows上使用cmd.exe或导致死锁的有限缓冲区大小。JRE对此的支持非常有限,尽管使用新的JavaSE1.5 ProcessBuilder类更好。
发布于 2012-10-24 15:28:33
通常的材料和Runtime#exec一样可以处理批处理文件。正在执行的命令是cmd.exe,批处理文件名是它的一个参数。我相信论证序列是cmd.exe,/c,batch_file_name。(编辑:是的,事实上,我找到了一个https://stackoverflow.com/questions/615948/how-do-i-run-a-batch-file-from-my-java-application,这个问题与答案中的内容重复。)
发布于 2012-10-24 15:29:39
Runtime.getRuntime().exec("cmd /c start batFileName.bat");应该能工作。但是要读取java进程的输出,请从上面的逗号中删除start。
https://stackoverflow.com/questions/13052393
复制相似问题