windows - 批处理文件中的 Java 版本

标签 windows batch-file

我的问题与以下问题非常相似: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/

相关文章:

windows - 安装 Windows 示例端口监视器 localmon 时出错

windows - 什么是标准 unicode 字体?

node.js - npm 命令什么也不做 - Windows

Windows 批处理文件和多处理器

java - 如何在没有 UI 的情况下在 STS/Eclipse 中编辑 Tomcat VM 参数?例如。使用批处理文件或 java 程序?哪个文件包含所有这些值?

windows - 从 IPConfig 获取 IP 地址,稍后在代码中使用,或保存

windows - 用于在 Win 7 中启动程序的批处理文件(常规+管理员)

python - 在 Windows 操作系统中的文件夹上设置 "hide"属性?

batch-file - 如何以固定的时间间隔(例如2小时)运行批处理文件中的一段代码,然后继续执行剩余的代码?

java - 无法在一台计算机上运行 jar,但可以在另一台计算机上运行