Bob*_*hel 9 command cmd version batch-file
如何获得java版本,并希望从批处理文件中获取java版本的'6'.我试过下面的脚本,但它没有用.
REM check java exists using JAVA_HOME system variable
if "%JAVA_HOME%" == "" (
ECHO Installing java
start /w jdk.exe /s
SETX -m JAVA_HOME "C:\Program Files\Java\jdk1.6.0_31"
ECHO java installed successfully
) ELSE (
ECHO checking java version
goto check_java_version
)
REM check java version using JAVA_HOME system variable
:check_java_version
set PATH=%PATH%;%JAVA_HOME%\bin
for /f tokens^=2-5^ delims^=.-_^" %%j in ('%JAVA_HOME%/bin/java -version 2^>^&1') do set "jver=%%j%%k%%l%%m"
echo %jver%
Run Code Online (Sandbox Code Playgroud)
JAVA_HOME具有"C:\ Program Files\Java\jdk1.6.0_31"值.
npo*_*aka 18
for /f tokens^=2-5^ delims^=.-_^" %j in ('java -fullversion 2^>^&1') do @set "jver=%j%k%l%m"
Run Code Online (Sandbox Code Playgroud)
这会将java版本存储到jver变量和整数中.您可以将它用于比较.EG
if %jver% LSS 16000 echo not supported version
Run Code Online (Sandbox Code Playgroud)
.您可以通过删除%k和%l以及%m来使用更多主要版本.此命令提示符版本.
对于.bat使用此:
@echo off
PATH %PATH%;%JAVA_HOME%\bin\
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m"
Run Code Online (Sandbox Code Playgroud)
根据我的测试,这是从bat获取java版本的最快方法(因为它只使用内部命令,而不使用外部命令FIND,FINDSTR并且不使用GOTO也可以减慢脚本速度).有些JDK供应商不支持-fullversion交换机,或者它们的实现与Oracle提供的不一样(更好地避免它们).