批处理文件中的Java版本 [英] Java Version in a batch file

查看:84
本文介绍了批处理文件中的Java版本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题与以下SO问题极为相似:如何从批处理脚本获取Java版本?

事实上,它确实几乎解决了我的问题.唯一的区别是,我必须检查基于%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'不被识别为内部或外部命令, 可操作的程序或批处理文件.

关于如何解决此问题的任何想法? (对上述文章的评论也提到了此问题).我正在Windows 7计算机上工作

解决方案

FOR /f "tokens=3" %%g in ('"%JAVA_HOME%\bin\java" -version 2^>^&1 ^| findstr /i "version"') do (
        SET "JAVA_VERSION=%%g"
)

My question, is extremely similar to the following SO question: How to get Java Version from batch script?

In fact, it did almost solve my problem. The only difference is that I've to check the Java version based on %JAVA_HOME%, which the user is free to modify. The issue that I'm facing is with this code:

@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%% in my system points to "C:\Program Files\jdk1.7.0_25" (notice the space in the path)

Even with the quotes, I get the following error in command line:

'C:\Program' is not recognized as an internal or external command, operable program or batch file.

Any idea as to how to solve this problem? (The comments to the aforementioned article also mentions this issue). I'm working on a Windows 7 machine

解决方案

FOR /f "tokens=3" %%g in ('"%JAVA_HOME%\bin\java" -version 2^>^&1 ^| findstr /i "version"') do (
        SET "JAVA_VERSION=%%g"
)

这篇关于批处理文件中的Java版本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆