В нашей компании есть несколько приложений, работающих через Java-апплеты от различных сторонних поставщиков. Наша проблема заключается в следующем: app1 может работать только на JRE 1.6.05, тогда как app2 требует 1.6.16. Есть ли способ указать, какой апплет получает какую JRE, вместо того, чтобы выбирать только одну JRE для всех апплетов (и, следовательно, всех пользователей)? Я не верю, что мы должны требовать одну JRE для всех пользователей с любого из этих поставщиков, потому что даже если мы найдем решение, один из поставщиков в какой-то момент выпустит новый патч, который снова перезапустит весь этот цикл.
Такая несовместимость зависимостей - одна из вещей, с которыми виртуализация приложений отлично справляется.
Используя виртуализацию приложений, вы можете упаковать каждое сложное приложение вместе с его конкретной версией JVM в один виртуальный `` пузырь '' на машине, где он даже не увидит, что есть другие виртуализированные приложения с их собственными версиями JVM, установленными в их собственных стенах. -от пузырей.
Виртуализация приложений обеспечивается такими системами, как Microsoft App-V (ранее Softgrid), Symantec / Altiris Software Virtualization Solution (SVS), Citrix XenApp или VMWare ThinApp.
У вас также есть дополнительная проблема, связанная с широко используемыми уязвимостями безопасности, которые повышают риск продолжения работы устаревших java-апплетов.
Решение состоит в том, чтобы прекратить использование Java на стороне клиента, запретить доступ в Интернет для пользователей с правами администратора или развернуть какое-то устройство / прокси-сервер безопасности.
До версии 6u10 JVM подключаемого модуля работала внутри браузера. У вас может быть только один экземпляр JVM на процесс, поэтому апплеты, использующие разные версии, не собирались летать. Начиная с версии 6u10, апплеты запускаются в другом процессе. При наличии нескольких внешних процессов возможен выбор версии для апплетов. Информация где-то на сайтах Sun ...