Назад | Перейти на главную страницу

Java JRE поврежден после обновления стека веб-приложений с помощью специально созданного MSI

У нас есть веб-приложение Java, установленное в среде Windows. Для создания MSI мы используем коммерческий продукт Advanced Installer. Программа установки устанавливает Tomcat 7, Apache 2.0 и развертывает код нашего приложения.

Во время обновления файлы tomcat обновляются, и служба Tomcat переустанавливается. Мы получаем сообщение о том, что не все файлы могут быть установлены, поэтому после установки необходим перезапуск.

Если игнорировать запрос на перезагрузку, все работает безупречно. Но после перезагрузки компьютера Java больше не работает, и служба Apache Tomcat для Windows не запускается. Даже запуск "java" или "java -version" в каталоге bin JRE приводит к следующей ошибке:

C: \ Program Files \ Java \ jre6 \ bin> Ошибка версии java при инициализации виртуальной машины java / lang / NoClassDefFoundError: java / lang / Object

Наш установщик не изменяет ни один из файлов Java, а только установленные файлы tomcat. Итак, я озадачен тем, что могло заставить Java перестать работать.

Единственный известный способ обхода - полностью переустановить Java и затем перезапустить службу Tomcat. Кто-нибудь знает, что может привести к повреждению Java JRE и отказу только после перезагрузки компьютера? Мы воссоздали эту проблему как в 32-, так и в 64-битных ОС, включая Windows XP, Windows Server 2003 и Windows Server 2008 R2.

В следующем сообщении упоминается то же самое, что и у нас, а именно, что средство обновления Java может повредить Java, если пытается обновить, когда службы работают с использованием Java:

Tomcat 7.0.22 прекращает работу службы Windows из-за обновления JRE

Интересно, запускалось ли у вас обновление Java после установки Tomcat, которое затем вызывает эту проблему.

Ваш установщик может пытаться перезаписать файлы JRE. Проведите сравнение записей реестра JAVA и настроек системного пути между исправной и поврежденной системами. Я предполагаю, что записи реестра были перезаписаны.

Вам нужно проверить свой установщик, перейти каждая вещь что он изменяется и убедитесь, что:

  • Это потребности выполнить это изменение
  • это изменение ничего не сломает