Как проверить установку Java из сценария пакетной обработки?

Я должен записать сценарий пакетной обработки, чтобы узнать, установлен ли Java, и если это, затем под какой путь? Я чувствую, что это должно быть что-то подобное этому:

for /f %%j in ("java.exe") do (
   set JAVA_HOME=..........
)

но я не могу понять это.

P.S. Это должно работать с путем с пробелами два. Как то, если Java установлен в "Программные файлы".

Спасибо.

5
задан SapuSeven 18 July 2017 в 15:11
поделиться

3 ответа

Не могли бы вы использовать команду 'where'? Например:

>where java

И проверить это?

Пример:

C:\Users\myname>where java
C:\Program Files (x86)\Java\jdk1.6.0_17\bin\java.exe

C:\Users\myname>where foo
INFO: Could not find files for the given pattern(s).
4
ответ дан 18 December 2019 в 14:42
поделиться

Используя reg [.exe], вы можете запросить возможных кандидатов JRE, установленных в системе. Их могло не быть, а могло быть несколько.

На тестовой установке, выполняемой в командной оболочке:

reg query «HKLM \ Software \ JavaSoft \ Java Runtime Environment»

Я получаю три строки результатов, первая из которых CurrentVersion REG_SZ 1.6

Исходя из этого, запрос

reg query "HKLM\Software\JavaSoft\Java Runtime Environment\1.6\"

дает мне JavaHome REG_SZ C: \ Program Files \ Java \ jre6

Это намного эффективнее, чем сканировать файловую систему, чтобы найти двоичный файл java. .

Это было протестировано при виртуальной установке 32-разрядной Windows XP.

7
ответ дан 18 December 2019 в 14:42
поделиться

Последние версии записывают в реестр:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft

Вы можете посмотреть, какие ключи там находятся, и узнать путь, используя reg.exe

1
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: