2017-06-26 13 views
0

私のメイクファイルでjavaバージョンをチェックして、バージョンが正しくない場合は終了します。これを行う際メイクファイルのjavaバージョンを確認してください

checkJava:: 
     ifeq ($(shell java -version | grep "1.5.0"),0) 
      @echo "Found version" 
     else 
      $(error "Could not find correct java version, please install 1.5") 
     endif 

私は期待していた場合のjava -version出力は行っていない、それが機能していません。それを修正する方法の提案?ありがとうございました!

編集: は、出力が返されるので、あなたは、ステータスコードを印刷する必要はgrep

+1

シェルステートメントのgrep部分に終了引用符がありません。 – harald

+0

おっとりはかなり右にコピーしていませんでした。私はそれを修正した今、どんな考えですか?それは問題を解決しません.. –

答えて

2

後に閉じ引用符を追加しました。また、java -versionがstdoutに移動することを確認する必要があります。私のIBM JDKがstderrに送信しました。

ifeq ($(shell java -version 2>&1|grep 1.5.0 >/dev/null; printf $$?),0) 
+0

素晴らしいです!どうもありがとうございます。もう1つの質問ですが、ここでは2>&1、>/dev/null;で何をしていますか?printf $$? 2>&1は標準出力に出力し、printfは/ grepが返す0/1を返しますか? –

+0

はい、それはそれぞれの作品のことです – covener

関連する問題