2016-04-03 5 views
1

この単純なコマンドで "java version"という出力が見つからない理由を教えてください。 stderrにJavaがBashと一緒にインストールされているか確認してください。

java version "1.8.0_77" 
Java(TM) SE Runtime Environment (build 1.8.0_77-b03) 
Java HotSpot(TM) 64-Bit Server VM (build 25.77-b03, mixed mode) 
+1

あなたが実際に出力またはバージョンをチェックしていないような何かを

if java -version 2>&1 >/dev/null | grep -q "java version" ; then 

おそらく単純に使用することができますか? – dovetalk

+1

バイナリ自体が存在し、実行可能であるかどうかをチェックできるのはなぜですか? –

+0

バイナリはすべてのマシンで同じ場所にないので、srcをテストするのは妥当ではありません。 – WASasquatch

答えて

5

java出力を次のようにjava -versionから

if java -version | grep -q "java version" ; then 
    echo "Java installed." 
else 
    echo "Java NOT installed!" 
fi 

出力されます。あなたはあなたがちょうど `which`使用していない理由がある、

if [ -n `which java` ]; then 
+0

私は 'which'が複数のgetからのマシンは、利用可能なものを見に行きます。なぜ私はj​​avaコマンドをテストしていたのですか?ありがとうございました。 – WASasquatch

関連する問題