在OS X中修改PATH等环境变量的正确方法是什么?
我在Google上看了一下,发现要编辑的三个不同文件:
我甚至没有这些文件,我很确定.tcshrc是错误的,因为OS X现在使用bash.这些变量,尤其是PATH,在哪里定义?
我正在运行OS X v10.5(Leopard).
许多使用shell脚本配置其环境的Java应用程序使用JAVA_HOME环境变量来启动正确版本的Java,找到JRE JAR等.
在OSX 10.6上,以下路径似乎对此变量有效
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Run Code Online (Sandbox Code Playgroud)
其中一些是实际当前VM的符号链接(如"Java首选项"窗格中所定义).
但应该使用哪一个 - 或者可以使用其中任何一个?
我想知道是否有人能够帮助我在我的计算机上登录帐户时运行.sh文件.我正在运行Mac OS X 10.6.7.
我有一个文件"Example.sh",我想在我登录计算机时运行.我已登录时运行它没有问题,但我想让它自动运行.
人们说要将它添加到登录shell文件中,但我不知道它在哪里.请帮忙.
我无法在Mac OS上启动Android Studio for Android开发(10.10.1 - Yosemite)
(不确定这是否应该继续使用SU ...迁移肯定是一种选择,但更多的程序员在这里阅读问题,所以这里也是如此).
我正在运行Mac OS X 10.8.4,我安装了Apple的JDK 1.6.0_51以及Oracle的JDK 1.7.0_25.我最近为一些需要它的预发布软件安装了Oracle的1.8预览JDK.现在,当我运行/ usr/libexec/java_home时,我得到了这个:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
1.8.0, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
1.7.0_25, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
1.6.0_51-b11-457, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_51-b11-457, i386: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
大.
但是,运行:
$ java -version
Run Code Online (Sandbox Code Playgroud)
返回:
java version "1.8.0-ea"
Run Code Online (Sandbox Code Playgroud)
这意味着Java的默认版本目前是预发布版本,它打破了一些"普通"软件包(在我的情况下,VisualVM).
我无法设置,JAVA_HOME因为启动应用程序忽略环境变量,即使从命令行启动(例如$ open /Applications/VisualVM.app).
那么,是否有一个我可以编辑的文件,我可以在全局设置我的JVM订购首选项?
(请不要告诉我启动Java Preferences Panel,因为它根本不起作用:它不包含任何有用的东西,只列出我安装的4个JVM之一.)
更新:
Oracle JVM存在于/Library/Java/JavaVirtualMachines.重命名JDK 1.8目录jdk1.8.0.jvm.xyz不会改变任何东西:java_home仍然在正确的位置找到它,并且运行/ usr/bin/java仍然执行1.8 JVM.这不是synlinks等的问题.
类似问题的答案
虽然这个答案 …
我开始使用Gradle和Intellij但是我遇到了配置Gradle的JVM的问题.当我开始一个新的Gradle项目时,我不允许将JVM定义为我的JAVA_HOME变量.以下屏幕截图显示了正在发生的事情:

正如你所看到的,Intellij说我的JAVA_HOME变量没有定义,但是如果我输入echo $JAVA_HOME我可以得到我的Java目录,在我的情况下:/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
我的./~bash_profile配置如下:
export JAVA_HOME=$(/usr/libexec/java_home)
有人能想出发生了什么吗?谢谢!
我最近使用Homebrew安装了Jenkins.我还使用Homebrew安装了Mercurial.
我可以成功克隆一个hg仓库 - 从终端.但如果我尝试在詹金斯的工作中做同样的事情,那就失败了.
所以,在工作中,我告诉Jenkins运行一个shell脚本echo $PATH.果然,路径/usr/local/bin不存在.如果我从终端执行相同的命令,它就在那里.
那么,什么是修改PATH的最佳方法,以便当我从终端回显时,Jenkins正在拉动我正在使用的相同PATH?
注意,Jenkins是从我登录进行这些测试的同一个用户帐户运行的,所以我无法理解为什么会发生这种情况.
自从升级到OSX Mountain Lion后,我在为eclipse和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"
Run Code Online (Sandbox Code Playgroud)
但这只适用于终端而不适用于应用程序.在以前的OSX版本中,您必须添加MAVEN_OPTS变量
~/.MacOSX/environment.plist
Run Code Online (Sandbox Code Playgroud)
(另请参阅在Mac OS X Lion上设置环境变量)这对OSX Lion完美有效.
但是Apple已经在Mountain Lion上改变了这种行为.我已经阅读了environment.plist不再受支持,新方法是编辑.app本身的Info.plist(Mountain Lion中设置的系统环境变量在哪里?).看来你必须添加一个包含所有变量的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> …Run Code Online (Sandbox Code Playgroud) 我最近设置了一台OSX机器,在Eclipse内部运行时,我无法让Maven接收JAVA_HOME.
到目前为止我做了以下事情:
export JAVA_HOME=$(/usr/libexec/java_home)-vm
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/bin/java/etc/mavenrc使用echo JAVA_HOME=\/ usr/libexec/java_home -v 1.7` | 设置JAVA_HOME sudo tee -a/etc/mavenrc`从CLI工作一切都像预期的那样.java -version打印:
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)
echo $JAVA_HOME 打印:
/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
mvn -v 打印:
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 17:22:22+0200)
Maven home: /usr/local/Cellar/maven/3.1.1/libexec
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", …Run Code Online (Sandbox Code Playgroud) 来自Ubuntu,我买了一台新的iMac并尝试设置我的Qt开发.其他一切已经开始运行了.还安装了Xcode命令行工具.
因为它让我感到惊讶brew,brew cask我想要Qt5与他们一起安装.一方面它非常快,我没有必要到任何主页下载它.另一方面,我不必关心安装目录.安装多个版本也应该简单得多.
我使用了以下命令:
brew install qt5
brew cask install qt-creator
Qt5现在安装在/usr/local/Cellar/qt5/5.4.1.我还将bin文件夹添加到我的路径中(完成.bash_profile).QtCreator,Linguist和所有其他应用程序都显示在我的启动板中.但不幸的是,它仍未完成.
QtCreator说不知道Qt的版本.我试图添加qmake但我无法导航到上面提到的文件夹.
有人能给我一个如何解决这个问题的提示吗?通过安装程序安装qt应该是最后一个选项.