zoukankan      html  css  js  c++  java
  • 在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 使用launchd定制定时任务和自启动服务

    Mac服务管理-Launchd(转)

    利用 Launchd 定制 Mac 启动任务

    Mac OS X 设置环境变量 (launchd.conf 测试该版本的系统不可用)

    创建一个environment.plist文件

    
    
    
  • 相关阅读:
    Spinlock
    Leetcode: Summary Ranges
    Leetcode: Search a 2D Matrix
    Leetcode: Rotate Image
    Leetcode: Length of Last Word in python
    BBC-unit7 session1
    BBC-unit6 session5
    BBC-unit6 session4
    BBC英语-unit6 session3
    BBC英语-unit6 session2
  • 原文地址:https://www.cnblogs.com/tusheng/p/10805717.html
Copyright © 2011-2022 走看看