Как определить, установлена ​​ли Java VM в Windows? - PullRequest
4 голосов
/ 19 марта 2011

Используя код, как определить, установлена ​​ли виртуальная машина Java (и ее версия) в Windows.

Ответы [ 5 ]

6 голосов
/ 19 марта 2011

Если вы хотите программно определить это из пакетного файла, вы можете использовать инструмент reg.exe, установленный в windows\system32.

Раздражает этот инструмент то, что он не может вернуть только код выхода, поэтому вы должны подавить его вывод путем перенаправления в никуда. И он также генерирует сообщение об ошибке, когда значение не существует.

@echo off
rem
rem DetectJvmInstalled.cmd
rem
reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion" > nul 2> nul
if errorlevel 1 goto NotInstalled

rem Retrieve installed version number.
rem The reg.exe output parsing found at http://www.robvanderwoude.com/ntregistry.php
set JvmVersion=
for /F "tokens=3* delims= " %%A IN ('reg.exe query "HKLM\Software\JavaSoft\Java Runtime Environment" /v "CurrentVersion"') do set JvmVersion=%%A
rem if "%JvmVersion%" == "" goto NotInstalled

:Installed
echo JVM Version = %JvmVersion%
exit /b 0

:NotInstalled
echo JVM Not installed.
exit /b 1

На что обратить внимание:

  • Существует два перенаправления на устройство nul, одно для стандартного вывода и одно для стандартной ошибки.
  • Обнаружение выполняется отдельно от анализа значения, чтобы не показывать сообщение ERROR..., когда значение не существует.
  • После опции delims= есть пробел (поскольку пробел является разделителем).
  • Пакетный файл возвращает уровень ошибки / код завершения, равный нулю в случае успеха (установлен) или 1 при ошибке (не установлен).

Надеюсь, это поможет.

5 голосов
/ 19 марта 2011

Я думаю, что, возможно, вы заинтересованы в том, чтобы назвать это:

System.getProperty("os.name");
System.getProperty("java.version");
4 голосов
/ 19 марта 2011

Oracle deployJava.js может не только проверить, доступна ли конкретная минимальная версия Java на компьютере пользователя, но если они установлены в Windows, при необходимости их можно загрузить и установить.

Обычно deployJava.js используется для предоставления кнопок запуска приложений, запускаемых с помощью Java Web Start & апплетов , вы можете использовать форму JWS для ссылки на «голый»'Jar-файл (без зависимостей).

3 голосов
/ 19 марта 2011

Нет способа определить, установлена ​​ли JVM из кода Java.Java-код не может работать без присутствия JVM.Следовательно, если вы можете запустить скомпилированный код, JVM установлена.

2 голосов
/ 19 марта 2011

Я действительно не считаю, что JVM может быть установлена ​​ в Windows.Было бы более уместно проверить, есть ли у вас JRE внутри каталога вашего жесткого диска, и легко ли этот JRE доступен через ссылку на его папку bin в переменной окружения PATH.

Вы можете проверить это, попытавшись запустить java -version из кода и собрав выходные данные.

Если вы получите сообщение с указанием 'java' is not recognized as an internal or external command, operable program or batch file., то на ваш jre нет ссылки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...