Java Preferences.app не меняет версию Java по умолчанию - PullRequest
2 голосов
/ 17 июня 2009

Версия, возвращаемая java -version в командной строке, будет определяться ссылкой /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK, если JAVA_HOME экспортируется как / Library / Java / Home (которая является ссылкой в /System/Library/Frameworks/JavaVM.framework/Home)

Версия, возвращаемая java -version в командной строке, будет определяться Java Preferences.app, если JAVA_HOME не установлен.

Я понял это методом проб и ошибок. Меня интересует, где это задокументировано.

Я не уверен, что CurretntJDK безопасен для изменения пользователем. Java Preferences.app не меняет его.

Ответы [ 3 ]

4 голосов
/ 10 июля 2009

не меняйте currentJDK, я сделал, и он испортил мой Java

2 голосов
/ 15 сентября 2009

Установка переменной среды JAVA_HOME - это правильный способ указать версию Java в сеансе. Вы можете указать JAVA_HOME в файле info.plist или путем создания приложения-загрузчика, которое устанавливает переменную среды перед запуском приложения.

Обратите внимание, что настройка JAVA_HOME, как правило, является плохой идеей, поскольку доступные версии Java зависят от версии платформы / ОС. Например, только 64-разрядные компьютеры Intel Mac имеют Java 6 с Leopard. И 32-разрядные, и 64-разрядные компьютеры Intel Mac имеют Java 6 с Snow Leopard.

Я обнаружил, что если вы хотите поддерживать 32-разрядные компьютеры Intel Core Duo Mac с Tiger или Leopard, лучше всего выбрать Java 1.5. Java 1.6 JRE будет запускать приложения Java 1.5. Если вам нужна Java 1.6, то вы должны требовать от своих пользователей 64-битную Intel с Leopard или любую Intel с Snow Leopard. Напомним, что существует SoyLatte, который предоставляет 32-битную альтернативу Java 1.6 для пользователей Tiger и Leopard.

«java -version» изменяется в зависимости от настройки JAVA_HOME, а также, как вы заметили, также от настроек Java.

Подводя итог, вы не должны устанавливать JAVA_HOME, если только вы не распространяете Java JRE с вашим приложением, таким как SoyLatte. В этом случае вы знаете, что целевая версия и путь будут там. В противном случае вы не можете полагаться на конкретную версию, предоставляемую ОС.

Вы можете найти документацию на веб-сайте Apple для разработчиков здесь: http://developer.apple.com/mac/library/documentation/Java/Conceptual/Java14Development/01-JavaOverview/JavaOverview.html

1 голос
/ 21 июля 2009

Кроме того, вам следует избегать установки JAVA_HOME в вашем .bashrc / .profile. Если он установлен, Java Preferences.app не имеет никакого эффекта и

java -version

всегда возвращает то, что считает версией «по умолчанию» (в моем случае, в Mac OS X Leopard это Java 1.5).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...