Поддержка Консалтинг Обучение Jamf Pro Блог

Java и совместимость со старым ПО

Дмитрий Афанасьев 26.11.2012

На фоне общего притеснения Java, данная платформа активно используется в кросс-платформенных средах и корпоративном ПО.
Платформу Java для Mac OS X (и Java Applet Plug-in до недавнего времени) выпускает сама Apple.
Номер версии для Mac OS X от 10.5 до 10.8 – неизменно 1.6 (Java 6).
Платформа выпускаемая Oracle имеет уже следующую версию – 1.7 (Java 7). Здевсь, в отличие от сборки под Windows нет возможности выбрать в списке для работы предыдущую версию.

Самое главное в этом всем то, что от версии платформы зависит – с какими опциями должен запускаться Java-апплет, и из-за этого появляются проблемы совместимости приложений написанных на Java (например тот же клиент Final Cut Server, Signiant, CrashPlan, интерфейс Qlogic). Что же делать?

В случае обнаружения несовместимости последней версии платформы Java с нашим сервисом, наша надежда либо на обновление самого сервиса, либо на Мак, на котором доступна старая версия Java.
Несмотря на то, что Java для Mac OS X является системным компонентом, его замена не составляет проблем.

В случае необходимости отката с Java Applet Plug-in 1.7 от Oracle до Java Applet Plug-in 1.6 от Apple можно воспользоваться статьей из базы знаний Apple:
http://support.apple.com/kb/HT5559

В случае если необходима конкретная версия платформы Java все нужно делать вручную.
Рассмотрим на примере отката Apple Java for Mac OS X 10.6 Update 9 (1.6.0_33-b03-424) до Update 8 (1.6.0_31-b04-415):

0) Собираем в архив /System/Library/Java/ и /Library/Internet Plug-Ins/JavaAppletPlugin.plugin с компьютера на котором установена необходимая версия (далее все выполняем на компьютере на который переносим Java).
1) Через панель управления Java (/Applications/Utilities/Java Preferences.app) отключаем использование компонента, удаляем кешированные данные.
2) Делаем резервные копии и после этого удаляем /System/Library/Java/ и /Library/Internet Plug-Ins/JavaAppletPlugin.plugin.
3) Распаковываем в вышеуказанные директории старую (необходимую) версию Java и плагина.
4) Переносить Java Preferences.app нет необходимости, если вы оставите “старую” (новую), Software Update не будет надоедать с предложением обновиться.
5) Проверяем владельца на перенесенные данные (должно быть root:wheel).
6) Через панель управления Java Prefrences включаем использование компонента.