当前位置: 代码迷 >> java >> 重定向Java和Javac输出
  详细解决方案

重定向Java和Javac输出

热度:59   发布时间:2023-07-31 12:07:55.0

我正在尝试编写安装(bash)脚本,在该脚本中,我需要检查用户是否安装了Java 1.8。

这样做的明显方法是致电

javac -version | grep 1.8

,但出于某些奇怪的原因,javac(和java)的-version输出无法重定向-既不能通过|,>或>>进行重定向-在第一种情况下,第二个程序无法获取任何输入,在第二和第三个情况下,执行该命令后,输出文件为空。 我尝试在三台不同的计算机上进行检查,结果在每台计算机上都相同。

是什么原因造成的? 还有其他方法可以检查Java版本吗?

似乎输出已发送到STDERR 尝试这个:

javac -version 2>&1

这会将STDERR的输出重定向到STDOUT 现在,您应该可以通过管道传递命令了。

如果仅要将其重定向到文件,只需将&1替换为文件名,因此:

javac -version 2>out

您可以使用此工具简单地检查Java版本: :

  相关解决方案