19

Я изо всех сил пытался заставить приложение работать в OS X Mavericks. Я наконец смог запустить его, свернув пакет .app и запустив скрипт оболочки напрямую. Похоже, JAVA_HOME нужно было установить. Поэтому я установил его в моем .profile в оболочке, и все работает нормально.

Однако, если я хочу просто щелкнуть значок в доке, он не запустится. Я предполагаю, что это потому, что JAVA_HOME не установлен глобально. Поскольку я не запускаю приложение непосредственно из оболочки, OS X не знает, что такое JAVA_HOME. Это просто продолжает смотреть.

В предыдущих версиях OS X кажется, что переменные окружения могут быть установлены для приложений с графическим интерфейсом, просто добавляя их в /etc/launchd.conf. Этот файл не существует в Mavericks. Как я могу установить глобальную переменную среды, которая будет работать для приложений с графическим интерфейсом в Mavericks?

1 ответ1

24

/etc/launchd.conf никогда не существовал по умолчанию, но он все еще работает в 10.9.

  1. Запустите, например, sudo nano /etc/launchd.conf .
  2. Добавьте строку, такую как setenv JAVA_HOME /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home . (Хотя я не знаю, какой JAVA_HOME должен быть установлен).
  3. Перезапустите или запустите launchctl < /etc/launchd.conf; sudo launchctl < /etc/launchd.conf и перезапустить процессы.

launchctl export печатает переменные, экспортированные процессом launchd пользователя, а sudo launchctl export печатает переменные, экспортируемые процессом root launchd.

Этот метод также можно использовать для установки пути по умолчанию. Например, я добавил эту строку в /etc/launchd.conf:

setenv PATH /Users/lauri/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/libexec:/usr/texbin

(Я использовал /Users/lauri/bin вместо ~/bin потому что ~/bin будет /var/root/bin для программ, запускаемых от имени пользователя root.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .