Подтвердить что ты не робот

Запуск Ant с помощью JDK 1.6 на Mac OS X

У меня возникла проблема с запуском Ant с JDK 1.6 на Mac OS X. Хотя версии Java-приложений установлены на Java SE 6 в OS X Java Preference, выполнение java -version в терминале также показывает 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.

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

export JAVA_HOME=`/usr/libexec/java_home`

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

Ответ 3

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

Вы можете увидеть версию jdk, которую использует Ant, отправив сообщение < echo message = "$ {ant.java.version}" / > в файле build.xml.

Ответ 4

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

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

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

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

java -version

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

Подробнее см. страницу разработчика Apple.

Ответ 5

Я пробую все, и только одно работает для меня: unlink 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"

Я надеюсь, что эта помощь.

Ответ 6

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