2010-09-28 46 views

回答

3

獲取版本,並將其寫入臨時文件。然後只解析版本本身:

@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 
+0

不錯。如果使用for命令,則可以避免使用臨時文件 – 2010-09-28 11:29:46

+0

可能出現java未在路徑中設置但已安裝的情況。 – 2010-09-28 12:18:43

+0

Afaik,如果安裝了Java,則System32目錄中還有一個java.exe,這意味着可以從shell中的每個位置調用java。所以不應該有問題。也許var是空的,但你必須檢查它。 – 2010-09-28 13:04:14

0
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的輸出到標準錯誤寫!所以你必須將標準錯誤重定向到一個文件。

0

如果你可以下載和gawk的Windows。

C:\test>java -version 2>&1 | gawk "NR==1{print $3}" 
"1.6.0_16" 
0

在條命令提示符下,你可以只輸入有java -version.

例如:

D:\Users> java -version 

,那麼你將得到答案

java version 1.8.0_11 
相關問題