for /f tokens^=2-5^ delims^=.-_^" %j in ('java -fullversion 2^>^&1') do @set "jver=%j%k%l%m"
This will store the java version into jver
variable and as integer
And you can use it for comparisons .E.G
if %jver% LSS 16000 echo not supported version
.You can use more major version by removing %k and %l and %m.This command prompt version.
For .bat use this:
@echo off
PATH %PATH%;%JAVA_HOME%in
for /f tokens^=2-5^ delims^=.-_^" %%j in ('java -fullversion 2^>^&1') do set "jver=%%j%%k%%l%%m"
According to my tests this is the fastest way to get the java version from bat (as it uses only internal commands and not external ones as FIND
,FINDSTR
and does not use GOTO
which also can slow the script). Some JDK vendors does not support -fullversion
switch or their implementation is not the same as this one provided by Oracle (better avoid them).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…