【问题标题】:Getting response of command line in Java在Java中获取命令行的响应
【发布时间】:2012-03-09 14:55:29
【问题描述】:

我不知道这是否可能,但我想在 Java 中查看我的 .bat 文件的响应。

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

谢谢

【问题讨论】:

  • 你的问题很不清楚。您是在谈论从 Java 程序打印到控制台吗? (使用 System.out.println())。我不确定 .bat 文件的来源。
  • 抱歉,我在 Windows 命令行中运行 .bat 文件。但我正在为用户构建一个程序,所以它不是只运行 bat 文件的最佳方式,用户也没有得到任何反馈。我希望现在更清楚了!

标签: java shell batch-file


【解决方案1】:

您需要使用ProcessBuilder 运行它(只要您运行的是 java 1.5 或更高版本,如果没有检查 Alex 的答案)

如果你执行:

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

您可以使用Process 拨打电话

InputStream errorStream =  process.getErrorStream();

您会将 bat 的输出捕获到 stderr。

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

【讨论】:

  • ProcessBuilder 方法要求一个字符串数组,如果我在那里使用 bat 文件,它将不起作用。
  • @Gynnad 使用 bat 文件是什么意思?我正在传递一个描述 bat 文件的字符串(bat 文件的路径,或者如果它在系统路径上,那么只是 bat 文件名)它在 ProcessBuilder 的文档中得到了很好的描述(答案中提供了链接)。如果您使用的是 java 1.5 或更高版本,则应该使用 ProcessBuilder。
【解决方案2】:

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

上面的代码示例没有使用ProcessBuilder,因此不限于Java 1.5 及更高版本

【讨论】:

    猜你喜欢
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多