2017-06-26 62 views
0

我想檢查我的makefile中的java版本,然後退出,如果版本不正確。檢查makefile中的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的版本輸出是不會在那裏我期待着和它不工作。如何解決它的建議?謝謝!

編輯: 添加收盤報價grep的

+1

您在shell語句的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

真棒,有效!非常感謝。還有一個問題,在這裏做什麼2>&1,>/dev/null,printf $$? 2>&1將它發送到標準輸出,並且printf打印/返回grep返回的0/1? –

+0

是的,這是每件作品 – covener