获得Java中命令行的响应

获得Java中命令行的响应

问题描述:

我不知道它是否可行,但我想看看我的.bat文件在Java中的响应。获得Java中命令行的响应

或者我可以看到一切都进展顺利的布尔值!如果有一些错误,我可以看到Java中的错误。

感谢

+0

你的问题是不太清楚。你在谈论从Java程序打印到控制台吗? (使用System.out.println())。我不确定.bat文件在哪里。 – 2012-03-09 14:58:28

+0

对不起,我正在Windows命令行中运行.bat文件。但是我正在为用户构建一个程序,所以它不是仅运行bat文件的最佳方式,用户也不会收到任何反馈。我希望现在更清楚! – Gynnad 2012-03-09 15:23:56

看看这些代码示例通过Java执行shell命令:Execute an external program

的代码上面的例子不能利用ProcessBuilder,因此不限于Java的1.5及以上

+0

谢谢,有很多代码对我来说非常有用! – Gynnad 2012-03-12 10:36:57

您需要使用ProcessBuilder运行它(只要您运行Java 1.5或以上,如果不检查亚历克斯的答案)

如果执行:

Process process = new ProcessBuilder("mybat.bat").command(); 

随着Process你可以打电话

InputStream errorStream = process.getErrorStream(); 

你将捕获从bat到stderr的输出。

您还可以使用getOutputStream()进程获取sdtout或使用exitCode()检查返回码。

+0

ProcessBuilder方法是要求一个字符串数组,如果我在那里使用bat文件将无法工作。 – Gynnad 2012-03-12 08:06:41

+0

@Gynnad你是什么意思使用bat文件?我传递了一个描述bat文件的字符串(bat文件的路径,或者如果它在系统路径上,那么就是bat文件名)。在ProcessBuilder的文档(答案中提供了链接)中对其进行了很好的描述。如果您使用的是Java 1.5或更高版本,则应该使用ProcessBuilder。 – zode64 2012-03-12 15:47:53