重定向 java 和 javac 输出
Redirecting java and javac output
我正在尝试编写一个安装 (bash) 脚本,我需要在其中检查用户是否安装了 java 1.8。
最明显的方法是调用
javac -version | grep 1.8
,但由于某些奇怪的原因 javac(和 java)-版本输出无法重定向 - 既不能通过 |、> 或 >> - 在第一种情况下,第二种情况程序没有获得任何输入,在第二个和第三个中,执行命令后输出文件为空。
我试过在三台不同的机器上检查它,结果在每台机器上都是一样的。
这是什么原因?
有没有其他方法可以检查 java 版本?
看来输出已发送到 STDERR
。试试这个:
javac -version 2>&1
这会将 STDERR
的输出重定向到 STDOUT
。现在您应该可以通过管道传输命令了。
如果您只想将其重定向到一个文件,只需将 &1
替换为文件名即可,因此:
javac -version 2>out
您可以使用此工具简单地检查您的 java 版本:
http://www.java.com/en/download/installed.jsp
我正在尝试编写一个安装 (bash) 脚本,我需要在其中检查用户是否安装了 java 1.8。
最明显的方法是调用
javac -version | grep 1.8
,但由于某些奇怪的原因 javac(和 java)-版本输出无法重定向 - 既不能通过 |、> 或 >> - 在第一种情况下,第二种情况程序没有获得任何输入,在第二个和第三个中,执行命令后输出文件为空。 我试过在三台不同的机器上检查它,结果在每台机器上都是一样的。
这是什么原因? 有没有其他方法可以检查 java 版本?
看来输出已发送到 STDERR
。试试这个:
javac -version 2>&1
这会将 STDERR
的输出重定向到 STDOUT
。现在您应该可以通过管道传输命令了。
如果您只想将其重定向到一个文件,只需将 &1
替换为文件名即可,因此:
javac -version 2>out
您可以使用此工具简单地检查您的 java 版本: http://www.java.com/en/download/installed.jsp