Мне нужно сослаться на java.exe в пути к корзине службы. Чтобы найти java.exe, я делаю два шага:
прочитать версию Java: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\JavaSoft\Java Runtime Environment (CurrentVersion)
читать: ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ\JavaSoft\Java Runtime Environment\ (JavaHome)
то я получаю такой путь: C:\Program Files\Java\jre1.8.0_201
Проблема в том, что если я обновлю Java, то этот путь больше не существует.
Я обнаружил, что java.exe также присутствует здесь: C:\ProgramData\Oracle\Java\javapath\java.exe
НО: файла нет ни в коем случае/ни в какой системе, но не знаю почему.
Кто-нибудь знает, как обойти эту проблему?
Всякий раз, когда возникает зависимость такого типа, я устанавливаю контейнеры Java в локальный каталог установки и использую их. Зависимость от версии — постоянная проблема с Java.




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