在launchd.conf中带有空格的setenv变量?

ina*_*lus 10 macos launchd

我是最近刚买了一台mac的Linux用户.我正在尝试设置我的IDE并发现Mac不会将.bashrc/.bash_profile /等用于GUI应用程序.所以,如果你有一个需要环境变量的GUI应用程序,你显然应该在/etc/launchd.conf中这样做

问题是,这个文件使用csh样式的setenv语法("setenv键值"而不是"export key ='value'")所以现在我有一个有空格的变量,我不知道该怎么做.什么都行不通.这是我试图测试它:

setenv MAVEN_OPTS "-Xms512m -Xmx1024m"
setenv MAVEN_OPTS1 '-Xms512m -Xmx1024m'
setenv MAVEN_OPTS2 (-Xms512m -Xmx1024m)
setenv MAVEN_OPTS3=(-Xms512m -Xmx1024m)
setenv MAVEN_OPTS4 -Xms512m -Xmx1024m
setenv MAVEN_OPTS5 -Xms512m
setenv MAVEN_OPTS6 "$MAVEN_OPTS5 -Xmx1024"
setenv MAVEN_OPTS7 $MAVEN_OPTS5 -Xmx1024
setenv MAVEN_OPTS8 /just/checking
setenv MAVEN_OPTS9="-Xms512m -Xmx1024m"
setenv MAVEN_OPTS10='-Xms512m -Xmx1024m'
setenv MAVEN_OPTS11='-Xms512m\ -Xmx1024m'
setenv MAVEN_OPTS12 '-Xms512m\ -Xmx1024m'
setenv MAVEN_OPTS13 "-Xms512m\ -Xmx1024m"
setenv MAVEN_OPTS14 -Xms512m\ -Xmx1024m

重启后只有var#5和#8存活.(没有空格的那些.)其余的都没有在我的环境中.

小智 7

尝试使用launchd(创建plist /Library/LaunchDaemons/java.props.plist):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>java.props</string>
    <key>ProgramArguments</key>
    <array>
        <string>launchctl</string>
        <string>setenv</string>
        <string>JAVA_OPTS</string>
        <string>-Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>LaunchOnlyOnce</key>
    <true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

这将运行一次并设置您的环境.希望它会有所帮助.