我的问题与以下问题非常相似:How to get Java Version from batch script?
事实上,它几乎解决了我的问题。唯一的区别是我必须根据%JAVA_HOME%检查Java版本,用户可以自由修改。我面临的问题是这段代码:
@ECHO OFF
SETLOCAL enableextensions enabledelayedexpansion
IF "%JAVA_HOME%"=="" (
@ECHO Please set JAVA_HOME environment variable
EXIT /B
)
@echo "%JAVA_HOME%"
REM Checking JAVA_VERSION
SET JAVA_VERSION=
FOR /f "tokens=3" %%g in ('"%JAVA_HOME%"\bin\java -version 2^>^&1 ^| findstr /i "version"') do (
SET "JAVA_VERSION=%%g"
)
我系统中的%JAVA_HOME%% 指向“C:\Program Files\jdk1.7.0_25”(注意路径中的空格)
即使使用引号,我也会在命令行中收到以下错误:
'C:\Program' is not recognized as an internal or external command, operable program or batch file.
知道如何解决这个问题吗? (上述文章的评论也提到了这个问题)。我正在 Windows 7 计算机上工作
最佳答案
FOR /f "tokens=3" %%g in ('"%JAVA_HOME%\bin\java" -version 2^>^&1 ^| findstr /i "version"') do ( SET "JAVA_VERSION=%%g" )
关于windows - 批处理文件中的 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18152829/