2012-02-26 36 views
2

在Windows中運行以下:在Java 7中Java版本檢查退出代碼已更改Java 7中?

java -version:1.5+

echo %ERRORLEVEL%

如果你使用Java 5或Java 6運行它,你會得到的退出代碼0意味着成功(指的版本是在至少1.5)。

如果使用Java 7運行它,則會得到退出代碼1,這意味着失敗。

任何人都會遇到這個,知道發生了什麼?

+0

到目前爲止,我發現的唯一解決方案是追加「 - ?」所以它變成: java -version:1.5+ - ? 這可修復錯誤級別問題,但會導致語法出現。 – Yon 2012-02-26 15:10:58

+0

要解決語法外觀問題,請在末尾使用「2> nul」。 – Yon 2012-02-26 15:11:19

回答

1

-version:<value>語法旨在請求啓動程序對特定版本的JVM執行某些操作。即運行Java應用程序或打印版本(-?)。但目標沒有被指定,並且是一個錯誤。啓動器打印使用情況並返回1。與沒有任何參數的運行平原java.exe相同。我相信在以前的版本中觀察到的行爲只是Java 7中修復的一個小錯誤。

編輯您可以運行java -version:1.5+ -version。這要求啓動程序檢查可用的虛擬機和打印版本(始終是成功的操作)。比-?選項更詳細。

另一種選擇是用主要方法創建一些存根類,它將什麼都不做。然後成功的檢查將完全沉默。 java -version:1.5+ your.stub.MainClass