我的公司提供了一个基于eclipse的开发环境,它需要为底层工具链设置一些环境变量,这样就可以同时安装多个版本,而不会接管系统。
我想提供一个图标,在finder或码头中设置这些图标,然后启动eclipse,这样客户就不会意外地启动eclipse,而不需要设置环境。这就是我迄今尝试过的:
这应该是一种很好的方法,但我不能让它添加到现有路径中(比如导出PATH=/myapp/bin:$PATH).
我创建了一个名为eclipse.command的bash脚本来设置环境,然后启动eclipse。这将打开一个终端窗口以及eclipse图标,并允许人们为裸eclipse“保持在码头上”。我不能将application.
围绕eclipse.command的Applescript包装器使它看起来像一个应用程序,并防止终端窗口出现。不幸的是,我现在为applescript和eclipse获得了一个停靠图标,因此仍然可以将裸露的eclipse保存在码头上。
有什么建议吗?我是不是完全搞错了?
发布于 2009-07-25 18:52:58
另一种解决方案是,当用户启动MacOS应用程序时,用设置环境的外壳包装器替换由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内部启动的进程是可见的。作为调试工具,记录器命令将把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不会自动检测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时,应该设置环境变量。
发布于 2011-07-20 18:09:16
我创建了以下内容:
别名start-eclipse='open /Applications/eclipse/Eclipse.app‘
如果从命令行运行start-eclipse,所有env都将被捕获。这样,您只需要在命令行和eclipse环境中维护一组env。
发布于 2009-05-06 14:16:08
看看一个相关的问题:Environment variables in Mac OS X。
基本上,这涉及创建一个~/.MacOSX/environment.plist文件。
注销并登录environment.plist,以便被..App的
https://stackoverflow.com/questions/829749
复制相似问题