在Mac下为GUI程序设定环境变量
Posted tusheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Mac下为GUI程序设定环境变量相关的知识,希望对你有一定的参考价值。
版本信息
Mac版本:macOS Mojave 10.14.4
GUI:STS
前提: ~/.bash_profile
设置了环境变量LOG_HOME
LOG_HOME=/Users/lucheng/logs
export LOG_HOME
$ source .bash_profile //重新加载该文件
$ echo $LOG_HOME
/Users/lucheng/logs
在STS中获取环境变量为空
System.out.println(System.getenv().get("LOG_HOME"));
说明环境变量没有起到作用,或者STS没有读取到
方案一
open /Applications/STS.app
(STS 换成别的即可)
缺点:每次打开工具 这样打开,也够恶心的。不推荐
方案二:
launchctl setenv 环境变量名 环境变量内容
重启GUI即可
缺点:每次启动需要先设置环境变量,要改进
又继续查,系统启动的时候自动设置
方法一
~/library/launchagents #用户的进程 (详细的看文献)
编写list文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>my.startup</string> <key>ProgramArguments</key> <array> <string>sh</string> <string>-c</string> <string> launchctl setenv LOG_HOME /Users/lucheng/logs </string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
方法二
编写脚本
do shell script "launchctl setenv LOG_HOME /Users/lucheng/logs"
设置启动执行脚本
系统偏好设置-用户组/用户-登录项 选择脚本
遗留问题:
环境变量设置了两遍,也没有统一的地方修改。
launchctl setenv LOG_HOME $LOG_HOME 环境变量
本来是支持环境变量的,不知道什么原因 重启以后取不到环境变量的值,估计与启动顺序有关,暂时这样处理。有好的方案 烦请留言
参考文献:
Mac OS X 设置环境变量 (launchd.conf 测试该版本的系统不可用)
以上是关于在Mac下为GUI程序设定环境变量的主要内容,如果未能解决你的问题,请参考以下文章