Запуск Ant с JDK 1.6 в Mac OS X - PullRequest
       26

Запуск Ant с JDK 1.6 в Mac OS X

12 голосов
/ 30 марта 2009

У меня проблема с запуском Ant с JDK 1.6 в Mac OS X. Несмотря на то, что в Java Preference версии Java установлены на Java SE 6, выполнение java -version в Terminal также показывает java version "1.6.0_07", Ant по-прежнему кажется использовать JDK 1.5 для использования JDK 1.5, так как он не видит классов JDK 1.6 при компиляции моего кода.

Я понимаю, что Ant использует переменную окружения JAVA_HOME, чтобы указать, какой JDK использовать. Однако я не совсем понимаю, как эту переменную можно установить в Mac OS X.

Следовательно, мой вопрос заключается в том, как заставить Ant работать с JDK 1.6 в Mac OS X. Если все еще правильно установить переменную окружения JAVA_HOME, как установить переменную в OS X.

Ответы [ 6 ]

21 голосов
/ 30 марта 2009

Переменная среды JAVA_HOME установлена ​​в файле .profile вашего домашнего каталога. (/Users/ejel/.profile?) Отредактируйте его и установите так, как вы хотите. E.g.:

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home

С этого момента, каждый раз, когда вы открываете новое окно терминала, для JAVA_HOME будет установлено это новое значение. Он не изменится ни с одним из существующих открытых окон.

Если вы действительно в ужасе от того, что поместили это в профиль, или если это конфликтует с другим программным обеспечением, оператор экспорта всегда можно запустить в терминале вручную или перейти в скрипт (например, setj6ev.sh), который запускается один раз перед запуском задач муравья.

7 голосов
/ 27 июня 2009

Я добавил строку

export JAVA_HOME=`/usr/libexec/java_home`

С моим файлом .zshrc, похоже, все получится (.bash_profile или что-то еще, если вы используете bash).

3 голосов
/ 21 апреля 2009

Тед, использование приложения «Предпочтения Java» не меняет символическую ссылку CurrentJDK в /System/Library/Frameworks/JavaVM.framework/Versions, что и будет использовать Ant, если переменная среды JAVA_HOME не установлена. Таким образом, вы можете изменить эту символическую ссылку вручную или установить переменную среды JAVA_HOME, но если вы не сделаете ни того, ни другого, Ant не будет использовать правильный JDK.

Вы можете увидеть версию jdk, которую использует Ant, введя в файле build.xml.

2 голосов
/ 18 января 2011

Я пробую все, и у меня работает только одна вещь: отсоединить CurrentJDK и ссылку на 1.6:

cd /System/Library/Frameworks/JavaVM.framework/Versions   
sudo unlink CurrentJDK   
sudo ln -sF "1.6" CurrentJDK  

Наконец я получаю:

java -version   
java version "1.6.0_22"

Надеюсь, это поможет.

2 голосов
/ 30 марта 2009

Явная установка переменной JAVA_HOME в вашем .profile / .bashrc / .zshrc на самом деле не является рекомендуемым способом сделать это на Mac. Есть программы, которые, как я видел, запутались с явно установленной JAVA_HOME для конкретной версии (например, grails 1.1 с некоторыми весенними ресурсами).

Правильный способ установить версию Java, которую вы хотите использовать, - это использовать приложение / Application / Utilities / Java Preferences.app.

Там вы перетаскиваете версию Java, которую хотите использовать, наверх. Это активирует эту версию для всех приложений (как запускаемых из командной строки, так и запущенных через процессы графического интерфейса).

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

java -version

Мне на самом деле не нравится, как Mac обрабатывает весь набор каталогов и файлов с символическими ссылками Java. Это не очевидно, и люди часто облажаются.

Подробнее см. На странице для разработчиков Apple *. 1014 *

0 голосов
/ 30 марта 2009

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

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