Мой вопрос, очень похож на следующий SO вопрос: How to get Java Version from batch script?Java версии в пакетном файле
На самом деле, это было почти решить мою проблему. Единственное различие заключается в том, что я должен проверить версию Java на основе% JAVA_HOME%, которую пользователь может изменить. Вопрос, который я облицовкой с этим кодом:
@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
все еще получаю ту же ошибку. Я тоже пробовал это. Если после этого я повторяю% JAVA_VERSION%, это показывает, что переменная сохранила «-version» как ее значение – Sujay
Возможно, но вы не получите ошибку: '' C: \ Program 'не распознается как внутренняя или внешняя команда, оперативная программа или командный файл. – Endoro
Я делаю ту же самую ошибку Endoro. Просто я добавил еще один оператор эха после того, как он увидел, что JAVA_VERSION пуст или нет. Вот где оно показывает «-version» как значение для этой переменной. Это не связано с моей реальной проблемой. – Sujay