Получить версию java из командного файла

Как получить версию java и хотите получить «6» из версии java из пакетного файла. Я попробовал под сценарием, но это не сработало.

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».

 for /f tokens^=2-5^ delims^=.-_^" %j in ('java -fullversion 2^>^&1') do @set "jver=%j%k%l%m" 

Это сохранит версию java в переменной jver и как целое. И вы можете использовать ее для сравнения .EG

 if %jver% LSS 16000 echo not supported version 

. Вы можете использовать более крупную версию, удалив% k и% l и% m.Эту версию командной строки.

Для .bat используйте это:

 @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" 

Согласно моим тестам, это самый быстрый способ получить Java-версию с летучей мыши (поскольку она использует только внутренние команды, а не внешние, как FIND , FINDSTR и не использует GOTO который также может замедлить выполнение скрипта). Некоторые поставщики JDK не поддерживают -fullversion коммутатор или их реализация не такая же, как в Oracle Oracle (лучше их избегать).

Вы можете сделать это с помощью awk :

 > java -fullversion 2> & 1 | awk "{print $ NF}"
 "1.7.0_21-b11"

 > java -fullversion 2> & 1 | awk -F \ "" {print $ (NF-1)} "
 1.7.0_21-b11

Пример сценария:

 @ECHO OFF &SETLOCAL FOR /f %%a IN ('java -fullversion 2^>^&1^|awk "{print $NF}"') DO SET "javaversion=%%a" IF DEFINED javaversion (ECHO java version: %javaversion%) ELSE ECHO java NOT found 

выход: java version: "1.7.0_21-b11"
awk для Windows

это должно быть java -version // если путь среды уже установлен

или% JAVA_HOME% / bin / java -version // если путь еще не установлен

В блочном выражении% var% будет отображаться как значение var ДО того, как был введен блок.

Переместите echo вне блока или echo %%g или call echo %%javaver%% или вызовите SETLOCAL enabledelayedexpansion и echo !javaver!

это будет ужасный идиот, но почему бы просто не напечатать JAVA_HOME путь?

  • Powershell: всегда генерируется нулевой файл (вывод Compare-Object)
  • Получение имен файлов всех файлов в папке
  • Перемещение / копирование операций с файлами в Java
  • Запись файла на SDCard
  • Найдите строку в файле и удалите ее
  • Как писать и читать java-сериализованные объекты в файл
  • Как загрузить файлы в приложение Java?
  • Загрузка файла getClass (). GetResource ()
  • Как получить все файлы под определенным каталогом в MATLAB?
  • Естественный порядок сортировки в C #
  • Загрузка файлов через AJAX в JQuery
  • Давайте будем гением компьютера.