首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从批处理文件中获取java版本

从批处理文件中获取java版本
EN

Stack Overflow用户
提问于 2013-07-18 12:42:52
回答 4查看 19.9K关注 0票数 11

如何获取java版本,并希望从批处理文件中获取java版本的“6”。我试过下面的脚本,但不起作用。

代码语言:javascript
运行
复制
    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%

JAVA_HOME具有"C:\Program Files\Java\jdk1.6.0_31“值。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-18 12:45:33

代码语言:javascript
运行
复制
for /f tokens^=2-5^ delims^=.-_^" %j in ('java -fullversion 2^>^&1') do @set "jver=%j%k%l%m"

这会将java版本存储到jver变量中,并作为整数存储,您可以将其用于比较.E.G

代码语言:javascript
运行
复制
if %jver% LSS 16000 echo not supported version

通过删除%k和%l以及%m.This命令提示符版本,.You可以使用更多主版本。

适用于.bat的使用以下代码:

代码语言:javascript
运行
复制
@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"

根据我的测试,这是从bat获取java版本的最快方法(因为它只使用内部命令,而不使用外部命令,如FINDFINDSTR,并且不使用GOTO,这也会降低脚本运行速度)。一些JDK供应商不支持Oracle,或者他们的实现与-fullversion提供的实现不同(最好避免使用它们)。

票数 20
EN

Stack Overflow用户

发布于 2016-08-18 17:13:34

这将是粗暴的笨蛋,但为什么不直接打印JAVA_HOME路径?

票数 1
EN

Stack Overflow用户

发布于 2013-07-18 12:46:35

如果已经设置了环境路径,则应为java -version //

或%JAVA_HOME%/bin/java -version //(如果尚未设置路径

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17714681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档