重定向java和javac输出

时间:2015-07-19 19:53:37

标签: java redirect pipe output javac

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

显而易见的方法是致电

javac -version | grep 1.8

,但由于一些奇怪的原因,javac(和java)-version输出无法重定向 - 既不是|,>或>> - 在第一种情况下,第二个程序没有得到任何输入,在第二个和第三个程序中,输出文件在执行命令后为空。 我试着在三台不同的机器上检查它,结果在每台机器上都是一样的。

原因是什么? 有没有其他方法可以检查java版本?

2 个答案:

答案 0 :(得分:4)

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

javac -version 2>&1

这会将STDERR的输出重定向到STDOUT。现在你应该能够管道命令了。

如果您只想将其重定向到文件,只需将&1替换为文件名即可:

javac -version 2>out

答案 1 :(得分:0)

您只需使用此工具检查您的java版本: http://www.java.com/en/download/installed.jsp