正如主題所說,我需要一個DOS腳本來檢查安裝在Windows XP機器上的Java版本。 此外,我需要檢查版本是否大於前綴值1.x.DOS腳本來檢查默認的Java安裝版本是否大於1.x
任何人都可以幫到我嗎?
謝謝!
正如主題所說,我需要一個DOS腳本來檢查安裝在Windows XP機器上的Java版本。 此外,我需要檢查版本是否大於前綴值1.x.DOS腳本來檢查默認的Java安裝版本是否大於1.x
任何人都可以幫到我嗎?
謝謝!
獲取版本,並將其寫入臨時文件。然後只解析版本本身:
@echo off
echo off
java -version 2> tmp_java_version.txt
set /p JAVA_VERSION= < tmp_java_version.txt
del tmp_java_version.txt
set JAVA_VERSION=%JAVA_VERSION:~14,3%
echo %JAVA_VERSION%
pause > NUL
java -version
您也可以使用命令
java -fullversion
,併產生輸出,例如:
java的完整版本 「1.6.0_17-B04」
在計算機上沒有任何版本來自Sun Microsystems的Java安裝,這會導致錯誤消息:
'jav a'不被識別爲內部或外部命令,可操作程序或批處理文件。
在批處理你可以這樣做:
@echo off
java.exe -fullversion 2> c:\temp\out.txt
for /F "tokens=4" %%i IN (c:\temp\out.txt) DO echo %%i
你無法避免的臨時文件,因爲java.exe的輸出到標準錯誤寫!所以你必須將標準錯誤重定向到一個文件。
如果你可以下載和gawk的Windows。
C:\test>java -version 2>&1 | gawk "NR==1{print $3}"
"1.6.0_16"
在條命令提示符下,你可以只輸入有java -version.
例如:
D:\Users> java -version
,那麼你將得到答案
java version 1.8.0_11
不錯。如果使用for命令,則可以避免使用臨時文件 – 2010-09-28 11:29:46
可能出現java未在路徑中設置但已安裝的情況。 – 2010-09-28 12:18:43
Afaik,如果安裝了Java,則System32目錄中還有一個java.exe,這意味着可以從shell中的每個位置調用java。所以不應該有問題。也許var是空的,但你必須檢查它。 – 2010-09-28 13:04:14