Java.exe путь, не зависящий от версии

#java #windows #service #installshield

#java #Windows #Обслуживание #installshield

Вопрос:

Мне нужно ссылаться java.exe в пути к служебной корзине. Чтобы найти java.exe Я делаю два шага:

  1. прочитайте версию Java: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ JavaSoft Java Runtime Environment (CurrentVersion)

  2. прочитайте: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ JavaSoft Java Runtime Environment (JavaHome)

тогда я получаю путь, подобный этому: C:Program FilesJavajre1.8.0_201

Проблема в том, что если я обновлю Java, то этот путь больше не существует.

Я обнаружил, что java.exe здесь также присутствует: C:ProgramDataOracleJavajavapathjava.exe

НО: файла здесь нет ни в коем случае / ни в какой системе, но я не знаю почему.

У кого-нибудь есть идея, как обойти эту проблему?

Комментарии:

1. Просто есть файл конфигурации, в котором вы настраиваете текущий путь java. Попытка найти путь в самой службе рано или поздно вас укусит, потому что только потому, что она нашла путь java, это не значит, что она должна его использовать. Если у вас установлено более одной версии, какую из них следует использовать?

2. Всякий раз, когда возникает зависимость такого типа, я буду устанавливать ячейки Java в локальный каталог установки и использовать их. Зависимость от версии является постоянной проблемой с Java.