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

Можете ли вы понизить версию Java на Mac?

Я тестирую Snow Leopard для нашей ИТ-команды в рамках подготовки к его запуску. В настоящее время я использую сид 10A394, который поставляется с Java JDK 1.6.

Я нашел одно настольное приложение Java, которое больше не работает под Snow Leopard, оно даже не запускается. Производитель рекомендует перейти на JDK 1.5.

Проблема в том, что каждый пакет Java для Mac, который мне удалось найти, сначала проверяет, что он будет установлен в той версии Mac OS, которую Apple имела в виду при создании пакета. Эта страница хороший пример, есть два разных пакета, но каждый явно проверяет MacOS 10.4 или 10.5 перед установкой, поэтому ни один из них не работает в Snow Leopard.

После того, как я его установлю, я знаю, как изменить порядок, чтобы предпочтительнее была более низкая версия - я просто не могу найти никаких пакетов, которые можно установить.

MacOS поставляется с версиями Java, начиная с 1.3. Видеть /System/Library/Frameworks/JavaVM.framework/Versions. Единственный раз, когда вам нужно установить из пакета, - это когда последняя версия Java новее, чем версия вашей ОС, и вы не можете использовать Обновление программного обеспечения по какой-либо причине.

Производитель вашего приложения действительно должен взять на себя ответственность, но вы, вероятно, можете решить проблему, отредактировав .plist приложения. Щелкните приложение правой кнопкой мыши и выберите Показать содержимое пакета затем откройте Info.plist файл в текстовом редакторе. Вы увидите Java словарь в этом файле и ключ JVMVersion. Измените значение на 1.5* (1.4+ будет означать что угодно после версии 1.4, 1.6 * будет любой версией 1.6.) Это заставит ваше приложение работать на Java 1.5.

Однако это может быть не вся история. Наряду с Info.plist, ты найдешь MacOS/JavaApplicationStub. Это настоящий двоичный файл MacOS X, запускающий JVM. Разработчик мог отправить свое приложение со старой версией этого файла, несовместимой с вашей ОС. У вас уже будет последняя копия этого файла на вашем компьютере по адресу /System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub. Замените версию приложения на эту.

Приложение может по-прежнему не запускаться, потому что (например) оно не может загрузить 32-разрядные собственные библиотеки после того, как было запущено как 64-разрядное. В этом случае вы можете вырезать 64-битную часть заглушки с помощью команды lipo: lipo -remove x86_64 JavaApplicationStub -output JavaApplicationStub

Надеюсь, это сработает. И если это так, обязательно сообщите разработчику приложения.

Если у вас установлено несколько версий java, вы можете изменить порядок предпочтений в Applications / Utilities / Java.

Установите нужную вам версию и установите ее на верхнюю предпочтительную версию.