Запустите Mac Eclipse с установленными переменными среды - PullRequest
28 голосов
/ 06 мая 2009

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

Я хочу предоставить значок в поисковике или док-станции, который устанавливает их, затем запускает затмение, чтобы клиенты не могли случайно запустить затмение без настройки среды. Это то, что я пробовал до сих пор:

  1. Настройка среды в Info.plist для затмения:

    Это должен быть хороший способ сделать это но я не могу сделать это добавить к существующий путь (например, экспорт PATH = / MyApp / бен: $ PATH)

  2. затмение сценария bash:

    Я создал bash-скрипт с именем eclipse.com, чтобы установить затем запусти затмение. Это также открывает окно терминала как значок затмения и позволяет люди "Держись на скамье подсудимых" для голое затмение Я не могу поставить eclipse.com и док-станция как есть не заявка.

  3. Завершение приложения Apple eclipse.command:

    Обертка Applescript вокруг eclipse.command заставляет это выглядеть приложение и предотвращает терминал окно появляется. К сожалению, Я Теперь получите значок док-станции для AppleScript и один для затмения так может все еще держать затмение док.

Есть предложения? Я поступаю об этом совершенно неправильно?

Ответы [ 8 ]

46 голосов
/ 25 июля 2009

Существует альтернативное решение, которое включает замену исполняемого файла, запускаемого MacOS X, когда пользователь запускает приложение Eclipse оболочкой оболочки, которая устанавливает среду.

Создайте пустой текстовый файл с именем "eclipse.sh" в каталоге пакета приложений Eclipse /Applications/eclipse/Eclipse.app/Contents/MacOS.

.

Откройте eclipse.sh в текстовом редакторе и введите следующее содержимое:

#!/bin/sh

export ENV_VAR1=value
export ENV_VAR2=value

logger "`dirname \"$0\"`/eclipse"

exec "`dirname \"$0\"`/eclipse" $@

В примере ENV_VAR1 и ENV_VAR2 являются настраиваемыми переменными среды. Эти переменные будут видны процессам, запущенным из Eclipse. Команда logger просто зарегистрирует путь исполняемого файла eclipse к system.log в качестве средства отладки.

В Терминале установить исполняемый флаг сценария оболочки eclipse.sh, т.е. ::

chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh

Откройте Eclipse.app Info.plist и измените значение ключа CFBundleExecutable с eclipse на eclipse.sh.

MacOS X не обнаруживает автоматически, что Info.plist Eclipse.app изменился. Поэтому вам необходимо принудительно обновить базу данных LaunchService в Терминале с помощью команды lsregister:

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app

При следующем запуске Eclipse.app из Dock или из Finder должны быть установлены переменные среды.

7 голосов
/ 20 июля 2011

Я создал следующее:

alias start-eclipse = 'open /Applications/eclipse/Eclipse.app'

Если вы запустите start-eclipse из командной строки, будут выбраны все переменные env. Таким образом, вам нужно всего лишь поддерживать один набор переменных env как в командной строке, так и в средах Eclipse.

6 голосов
/ 06 мая 2009

Взгляните на связанный вопрос: Переменные среды в Mac OS X .

По сути, это включает создание ~/.MacOSX/environment.plist файла.

Выйдите из системы и войдите в нее, чтобы список environment.plist был выбран .App's

3 голосов
/ 08 мая 2017

Ничто из вышеперечисленного не сработало для меня. Вы должны установить Eclipse -> Настройки -> Терминал -> Аргументы, установленные на --login Это заставит Eclipse войти в систему с вашей учетной записью сразу после открытия Терминала.

Смотрите скриншот:

enter image description here

Ссылка: https://marketplace.eclipse.org/comment/4259#comment-4259

3 голосов
/ 19 марта 2015

Это прекрасно работает в OS X Yosemite:

  1. Открыть / Приложения / Автоматизатор.
  2. Когда появится раскрывающийся список с вопросом о том, какой документ вы хотите создать, выберите «Приложение».
  3. Во втором списке слева дважды щелкните «Выполнить сценарий оболочки».
  4. В правой части удалите "кота", который автоматически помещается туда, и замените его следующим:

    source ~/.bash_profile && /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse
    

Теперь перейдите в File-> Save и сохраните приложение в вашем каталоге Applications. Я назвал его «Eclipse» с большой буквы «E», чтобы не конфликтовать с каталогом «eclipse», который у меня уже был. В качестве меры предосторожности вы можете даже дать ему значок Eclipse, выбрав настоящее приложение eclipse, нажав command-i, выбрав значок, нажав command-c, затем выбрав приложение Automator «Eclipse», нажав command-i, выбрав значок и нажав команду-v.

Теперь вы можете открыть приложение или даже перетащить его в док. Обратите внимание, что если вы запустите его, «настоящее» затмение все равно будет отображаться в вашем доке в виде отдельной иконки, но у вас не будет всего. :)

3 голосов
/ 10 февраля 2015

Ответ Сакры выше удивителен, за исключением того, что он не наследует автоматически вашу существующую среду bash. Чтобы eclipse.sh перехватил вашу существующую среду bash, измените eclipse.sh, чтобы использовать bash вместо sh, и добавьте строку для получения исходного файла ~ / .bash_profile, таким образом:

#!/bin/bash
source ~/.bash_profile
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" $@
1 голос
/ 29 марта 2016

Как указано в https://github.com/atom/atom/issues/7045,, переменные окружения могут загружаться автоматически, без явного source ~/.bash_profile с помощью

#!/usr/bin/env bash -l

вместо

#!/bin/bash
source ~/.bash_profile

после этого в обоих случаях следует

exec "`dirname \"$0\"`/eclipse" $@

Это прекрасно работает для меня, спасибо за всю предыдущую работу.

1 голос
/ 12 августа 2013

Ссылка на Eclipse не использует путь, заданный в .bashrc

  1. Создать простой скрипт
#!/bin/bash
source /home/user/.environment_variables
/home/user/eclipse_cpp/eclipse -Duser.name="My Name"

2. Затем поместите все системные переменные в файл /home/user/.environment_variables (любой файл, который вы хотите)

Моя выглядит так:

export COCOS_ROOT=/home/user/Projects/edukoala
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

3. Теперь вы можете удалить свои переменные в .bashrc и поставить строку

source /home/user/.environment_variables

Все отлично работает:)

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