正如主题所说,我需要一个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