根据这里的帖子,例如在 OS X 中设置环境变量?,对于 Mountain Lion,如果不是早期版本的 OS X,在系统级别设置环境变量的唯一方法是使用(或创建)一个包含以下命令的文件 /etc/launchd.conf:
setenv CATALINA_BASE /opt/local/share/java/tomcat6
(这似乎确实按预期工作。)
如果是这样,如何通过引用其他东西的值来做到这一点,例如,设置 JAVA_HOME?在 /etc/launchd.conf 我试过
setenv JAVA_HOME $(/usr/libexec/java_home)
但是如果我运行,则在终端中
echo $JAVA_HOME
我只是按字面意思返回 $(/usr/libexec/java_home)。
相比之下,如果我将相同的 setenv JAVA_HOME $(/usr/libexec/java_home) 命令放入我的 ~/.profile 中,那么 echo $JAVA_HOME 的结果就是引用的实际值,即 /Library/Java/JavaVirtualMachines/jdk1 .7.0_15.jdk/内容/主页。
那么我应该如何修改 /etc/launchd.conf 中的 setenv 命令以使其给出第二个参数的值而不是字面的第二个参数?