【问题标题】:How to Capture Java -jar command's OS Output in Linux?如何在 Linux 中捕获 Java -jar 命令 ON 输出?
【发布时间】:2017-02-05 10:28:24
【问题描述】:

我在 linux 终端上运行 java -jar xyz.jar 命令。我在代码中有 system.out.println 语句和 System.exit 语句。

如何在 linux 上捕获 system.exit 或输出到操作系统?我需要为此准备一个 linux 脚本吗?

【问题讨论】:

  • 只重定向jar whatever ... > redirect.txt
  • “对操作系统”是什么意思?是否要将其写入文件以便其他程序/进程可以使用它?

标签: java linux shell unix jar


【解决方案1】:

这可能与 SO 无关。

你只需重定向它:

java -jar xyz.jar > the_file_to_output

如果您使用System.err 输出以及System.out 输出并希望将两者都重定向,则稍微复杂一点,因为您需要将out 重定向到文件,然后 error 重定向到 out

java -jar xyz.jar > the_file_to_output 2>&1

2>&1error(标准流 #2)重定向到 out(标准流 #1)。请注意,顺序很重要,您必须在 out 重定向到文件之后执行此操作。

【讨论】:

  • 我只是找不到那个副本。但当然是这样。
  • java -jar xyz.jar > the_file_to_output 2>&1 这对我有帮助。
【解决方案2】:

Java 与任何其他命令一样工作。

如果你想要标准输出(或错误输出),你可以使用通常的 I/O 操作符:> 2> >> |

java -jar xyz.jar > output.file
java -jar xyz.jar | sort | less

为了获取 System.exit 值,你有特殊的变量 $?

java -jar xyz.jar
echo $?

获取更多信息Exit statusI/O redirection

【讨论】:

  • @AKC: $? 与捕获输出无关。但是,如果它是您想要的退出代码,那就是您所需要的。 (如果答案回答了您的问题,请不要忘记将答案标记为正确。)
猜你喜欢
  • 2012-07-28
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2017-02-26
  • 2013-01-16
  • 1970-01-01
相关资源
最近更新 更多