我的公司提供了一个基于eclipse的开发环境,需要为底层工具链设置一些环境变量,因此可以同时安装多个版本而不接管系统。
我想在finder或dock中提供一个图标,然后设置这些图标然后启动eclipse,这样客户就不会在没有设置环境的情况下意外启动eclipse。这是我到目前为止所尝试的:
在Info.plist中设置环境 对于日食:
这应该是一个很好的方法 但我不能让它添加到 现有路径(如出口 PATH = / MyApp的/ bin中:$ PATH)
包装eclipse的bash脚本:
我创建了一个名为的bash脚本 eclipse.command设置 环境然后发射日食。 这也打开了一个终端窗口 作为eclipse图标并允许 人们为了“继续停靠” 裸食。我不能放 eclipse.command在码头上 不是申请。
Applescript包装eclipse.command:
Applescript包装 eclipse.command让它看起来像 一个应用程序,并阻止终端 窗口出现。不幸的是,我 现在得到一个停靠图标 Applecript和一个用于日食的 仍然可以保持日食 码头。
有什么建议吗?我是以完全错误的方式解决这个问题吗?
答案 0 :(得分:46)
当用户使用设置环境的shell包装器启动Eclipse应用程序时,有一个替代解决方案涉及替换MacOS X运行的可执行文件。
在Eclipse应用程序包目录/Applications/eclipse/Eclipse.app/Contents/MacOS中创建一个名为“eclipse.sh”的空文本文件。
在文本编辑器中打开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中作为调试帮助。
在终端中设置shell脚本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已更改。因此,您需要使用lsregister命令强制更新终端中的LaunchService数据库:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
下次从Dock或Finder启动Eclipse.app时,应设置环境变量。
答案 1 :(得分:7)
我创建了以下内容:
alias start-eclipse ='open /Applications/eclipse/Eclipse.app'
如果从命令行运行start-eclipse,将会拾取所有env变量。这样,您只需要在命令行和日食环境中维护一组env变量。
答案 2 :(得分:6)
查看相关问题:Environment variables in Mac OS X。
基本上,这涉及创建~/.MacOSX/environment.plist
文件。
注销并登录environment.plist以获取.App的
答案 3 :(得分:3)
#!/bin/bash
source ~/.bash_profile
logger "`dirname \"$0\"`/eclipse"
exec "`dirname \"$0\"`/eclipse" $@
答案 4 :(得分:3)
这在OS X Yosemite中完美运行:
在右侧删除自动放置的“猫”,并将其替换为:
source ~/.bash_profile && /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse
现在转到File-> Save,然后将应用程序保存到Applications目录。我用资本'E'命名为“Eclipse”,以免与我已经拥有的“eclipse”目录冲突。通过选择真正的eclipse应用程序,按下command-i,选择图标,按下command-c,然后选择automator“Eclipse”应用程序,按下command-i,选择图标,你甚至可以给它Eclipse图标。 ,并按下命令-v。
现在您可以打开应用程序,甚至可以将其拖到停靠栏中。请注意,如果你启动它,“真正的”日食仍然会作为一个单独的图标出现在你的Dock中,但你不能拥有一切。 :)
答案 5 :(得分:1)
链接到Eclipse doesn't use the path set in .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
一切正常:)
答案 6 :(得分:1)
正如在https://github.com/atom/atom/issues/7045中指出的那样,环境变量可以自动加载,而不使用显式source ~/.bash_profile
#!/usr/bin/env bash -l
而不是
#!/bin/bash
source ~/.bash_profile
之后,在这两种情况下,遵循
exec "`dirname \"$0\"`/eclipse" $@
对我来说这很有用,感谢以前的所有工作。