Запустите mac eclipse с установленными переменными окружения
Моя компания предоставляет среду разработки на основе eclipse, для которой требуются некоторые переменные среды для базовой инструментальной цепочки, поэтому несколько версий могут устанавливаться одновременно и не принимать на себя систему.
Я хочу предоставить значок в finder или док-станцию, который устанавливает это, а затем запускает eclipse, чтобы клиенты не могли случайно запустить eclipse без установленной среды. Это то, что я пробовал до сих пор:
-
Настройка среды в Info.plist
для затмения:
Это должен быть хороший способ сделать это
но я не могу добавить его в
существующий путь (например, экспорт
PATH =/MyApp/бин:. $PATH)
-
bash script wrapping eclipse:
Я создал вызов bash script
eclipse.command, чтобы установить
затем запустите eclipse.
Это также открывает окно терминала
как значок затмения и позволяет
люди, чтобы "Держать на скамье подсудимых" для
голый затмение. Я не могу поставить
eclipse.command на доке, так как это
не приложение.
-
Applescript wrapping eclipse.command:
Обертка Applescript вокруг
eclipse.command делает его похожим
приложение и предотвращает работу терминала
появится окно. К сожалению, Я
теперь получите значок док-станции для
applescript и один для затмения, поэтому
все еще может сохранить голый затмение
док.
Любые предложения? Неужели я об этом не совсем правильно?
Ответы
Ответ 1
Существует альтернативное решение, которое включает замену исполняемого файла, запускаемого 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" [email protected]
В примере ENV_VAR1 и ENV_VAR2 устанавливаются переменные среды. Эти переменные будут видны для процессов, запущенных из Eclipse. Команда logger будет просто записывать путь к исполняемому файлу eclipse в system.log в качестве средства отладки.
В терминале установите исполняемый флаг оболочки script eclipse.sh, т.е.:
chmod +x /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.sh
Откройте Eclipse.app Info.plist и измените значение для ключа CFBundleExecutable из eclipse в eclipse.sh.
MacOS X не обнаруживает автоматического изменения Eclipse.app Info.plist. Поэтому вам необходимо принудительно обновить базу данных LaunchService в терминале с помощью команды lsregister:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
При следующем запуске Eclipse.app из Dock или из Finder должны быть установлены переменные среды.
Ответ 2
Посмотрите на связанный с этим вопрос: Переменные среды в Mac OS X.
В основном это связано с созданием файла ~/.MacOSX/environment.plist
.
Выйдите из системы и войдите в систему environment.plist, чтобы получить файл .App
Ответ 3
Я создал следующее:
alias start-eclipse = 'open/Applications/eclipse/Eclipse.app'
Если вы запустили start-eclipse из командной строки, все env vars будут подняты. Таким образом, вам нужно поддерживать только один набор env vars в средах командной строки и затмения.
Ответ 4
Ответ sakra выше - это потрясающе, но не автоматически наследует существующую среду bash. Чтобы обеспечить, чтобы eclipse.sh загрузила существующую среду bash, измените eclipse.sh, чтобы использовать bash вместо sh и добавьте строку для источника существующего файла ~/.bash_profile, таким образом:
#!/bin/bash
source ~/.bash_profile
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" [email protected]
Ответ 5
Это отлично работало в OS X Yosemite:
- Open/Applications/Automator.
- Когда появится раскрывающийся список с вопросом о том, какой документ вы хотите создать, выберите "Приложение".
- Во втором списке слева дважды щелкните "Запустить оболочку Script".
-
В правой части удалите "cat", который ставится там автоматически, и замените его на это:
source ~/.bash_profile && /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse
Теперь перейдите в меню Файл- > Сохранить и сохраните приложение в каталоге приложений. Я назвал его "Eclipse" с капиталом "E", чтобы не вступать в конфликт с уже имевшимся каталогом "eclipse". Для хорошей меры вы можете даже присвоить ей значок Eclipse, выбрав реальное приложение eclipse, нажав команду-i, выбрав значок, нажав команду-c, затем выбрав приложение "Eclipse" автомата, нажав команду-i, выбрав значок, и нажмите команду-v.
Теперь вы можете открыть приложение или даже перетащить его на док-станцию. Обратите внимание: если вы запустите его, "реальное" затмение будет отображаться на док-станции как отдельный значок, но вы не сможете получить все.:)
Ответ 6
Ничто из этого не помогло мне. вам нужно установить Eclipse → Настройки → Terminal → Аргументы, установленные в --login
Это будет инструктировать Eclipse для входа в вашу учетную запись сразу после открытия терминала.
Смотрите снимок экрана:
![введите описание изображения здесь]()
Ссылка: https://marketplace.eclipse.org/comment/4259#comment-4259
Ответ 7
Ссылка на Eclipse не использует путь, установленный в .bashrc
#!/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
Все отлично работает:)
Ответ 8
Как указано в https://github.com/atom/atom/issues/7045, переменные среды могут быть загружены автоматически без явного source ~/.bash_profile
с помощью
#!/usr/bin/env bash -l
вместо
#!/bin/bash
source ~/.bash_profile
после этого в обоих случаях следует
exec "`dirname \"$0\"`/eclipse" [email protected]
Это отлично работает для меня, спасибо за все предыдущие работы.