Простой ответ - нет. Обновления Java не делают и не могут 1 автоматически обновлять JAVA_HOME.
Обратите внимание, что проблема такого рода также влияет на другие службы на базе Java, работающие в Windows. Google для windows server java update breaks java_home
.
Кстати, современные системы Linux используют систему «альтернатив», чтобы элегантно справляться с переключением версий Java. А такие сервисы, как Tomcat, не зависят от одной общесистемной переменной JAVA_HOME. Вместо этого типичная служба имеет файл конфигурации, который включает JAVA_HOME, который будет использоваться для этой службы.
Вы можете посмотреть, как Linux делает эти вещи, чтобы узнать, как избежать сгорания обновлениями Java в Windows. Но это может быть больше усилий, чем оно того стоит. Другие подходы будут:
- использовать какую-либо систему управления конфигурацией на рабочем сервере Windows, чтобы избежать неконтролируемых обновлений
- будьте внимательны при включении / использовании автообновлений.
1 ... потому что не существует «правильного пути», который будет работать для всех применений Java на Windows-боксе.