如何设置环境变量对OSX山狮的应用程序?(How to set environment variab

2019-06-27 11:48发布

自从升级到OSX山狮我有一些问题设置日食和Maven的环境变量。

我的目标是在Eclipse中运行Maven的命令。 这个命令需要从远程仓库下载文物(解决依赖性)。 该信息库通过HTTPS验证。

我跟着通过身份验证的HTTPS指南远程存储库访问 ,并添加以下行到我的.bash_profil。 如果我在终端万物运行Maven工作正常。

export MAVEN_OPTS="-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd"

但这仅针对终端而不是应用程序。 在以前OSX版本,你不得不把MAVEN_OPTS变量添加到

~/.MacOSX/environment.plist

(另见在Mac OS X Lion中设置环境变量 )这个工作对OSX狮子完美。

但是,苹果已经改变了山狮这种行为。 我读过environment.plist不再支持和新的方法是编辑。应用程序本身的Info.plist( 凡在山狮设置系统环境变量? )。 看来你必须添加一个LSEnvironment包含所有你的变量字典。

<?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>LSEnvironment</key>
    <dict>
        <key>M2_HOME</key>
        <string>/usr/share/maven</string>
        <key>MAVEN_OPTS</key>
        <string>-Xmx512m -Djavax.net.ssl.trustStore=/Users/myUser/.knowncerts/trust.jks -Djavax.net.ssl.trustStorePassword=trustPwd</string>
    </dict>
    <key>CFBundleExecutable</key>
    <string>eclipse</string>
    <key>CFBundleGetInfoString</key>
    <string>Eclipse 3.8 for Mac OS X, Copyright IBM Corp. and others 2002, 2011. All rights reserved.</string>
    <key>CFBundleIconFile</key>
    <string>Eclipse.icns</string>
    <key>CFBundleIdentifier</key>
    <string>org.eclipse.eclipse</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>Eclipse</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>3.8</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>3.8</string>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleLocalizations</key>
    <array>
        <string>ar</string>
        <string>cs</string>
        <string>da</string>
        <string>el</string>
        <string>en</string>
        <string>es</string>
        <string>de</string>
        <string>fi</string>
        <string>fr</string>
        <string>hu</string>
        <string>it</string>
        <string>iw</string>
        <string>ja</string>
        <string>ko</string>
        <string>nl</string>
        <string>no</string>
        <string>pl</string>
        <string>pt_BR</string>
        <string>pt</string>
        <string>ru</string>
        <string>sv</string>
        <string>tr</string>
        <string>zh_HK</string>
        <string>zh_TW</string>
        <string>zh</string>
    </array>
    <key>Eclipse</key>
    <array>
        <string>-keyring</string>
        <string>~/.eclipse_keyring</string>
        <string>-showlocation</string>
    </array>
</dict>
</plist>

正如你可以看到我改变了我的Eclipse.app的Info.plist的。 但这并没有工作。 我在Eclipse启动行家。 但Maven是无法下载的文物,因为远程存储库不被信任。 我认为Eclipse不使用我在Info.plist中定义的环境变量

你有什么建议,如何解决这个问题?

谢谢您的回答!

Answer 1:

不幸的是,这似乎是用于设置OS X 10.8.x山狮的全局环境变量的最佳选择:

  • https://stackoverflow.com/a/588442/705157

对于临时环境变量,运行Terminal.app该命令,然后重新启动需要访问该变量的任何应用程序:

launchctl setenv MYVARIABLE value

为了使各重启的环境变量执着,创造/etc/launchd.conf并添加这样一行为每个变量,然后重新启动你的整个系统:

setenv MYVARIABLE value

这为我工作,以设置可以通过IntelliJ IDEA的CE 12.0在OS X 10.8.2继承一个全球性的环境变量。 不是很优雅,但它的工作原理。

另外,您也可以设置在Terminal.app环境变量,然后启动应用程序从要通过命令行访问的环境变量。 在推出应用程序将继承从终端会话环境。 在Terminal.app,设置环境变量,并用以下命令来启动其他应用程序open -a "App Name"

export MYVARIABLE=value
open -a "IntelliJ IDEA 12 CE"

这将打开的IntelliJ IDEA,我的代码可以访问$MYVARIABLE在其环境中。



Answer 2:

从这里: https://stackoverflow.com/a/10374886/325742

#!/bin/sh
#
export MAVEN_OPTS=#MAVEN_OPTS_HERE#
LAUNCHER_JAR=/Applications/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar

java \
-showversion \
-XX:MaxPermSize=256m \
-Xms1024m \
-Xmx1024m \
-Xdock:icon=/Applications/eclipse/Eclipse.app/Contents/Resources/Eclipse.icns \
-XstartOnFirstThread \
-Dorg.eclipse.swt.internal.carbon.smallFonts \
-Dosgi.requiredJavaVersion=1.5 \
-jar $LAUNCHER_JAR

然后,使用在步骤http://mathiasbynens.be/notes/shell-script-mac-apps ,把上面的脚本转换成可以被保持在码头上的应用程序。



Answer 3:

>“环境”选项卡 - 你可以在Maven的“调试配置”日食直接设置环境变量



Answer 4:

终端窗口上的命令的步骤:

  1. 六〜/ .bash_profile中
  2. 按我(把在编辑模式vi编辑器)
  3. 在vi编辑器窗口中输入环境变量
    • 如出口JAVA_HOME = /用户/共享/詹金斯/主页/工具/ hudson.model.JDK / java8
  4. ESC键后再按:WQ
  5. 源〜/ .bash_profile中


文章来源: How to set environment variables to an application on OSX Mountain Lion?