Maven, JAVA_HOME w/ OS X

2022-09-03 06:36:15

试图让Maven,Java和OS X一起玩得好-我已经在Linux和Windows机器上多次做过了,没有问题。我以为我需要做的就是下载Maven,设置我的环境变量,然后我就好了。所以这是我.bash_profile的一个片段...

export JAVA_HOME=/Library/Java/Home/  
export M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1  
export PATH=$PATH:$M2_HOME/bin

该设置是Apple建议在此问答页面上使用的设置。然而,在启动终端并运行后,这是输出...JAVA_HOMEmvn --version

Apache Maven 2.2.1 (r801777; 2009-08-06 15:16:01-0400)  
Java version: 1.6.0_17  
Java home: /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home  
Default locale: en_US, platform encoding: MacRoman  
OS name: "mac os x" version: "10.6.2" arch: "x86_64" Family: "mac"

任何想法为什么我在.bash_profile设置被Maven忽略了?它引起了问题,因为在Maven中找不到的东西正在使用。我可以通过在Maven正在使用的家庭中创建符号链接和其他黑客来解决这个问题,但我宁愿让它正常工作,因为下次Apple推送Java更新时,这只会在我身上爆炸。感谢您的任何帮助...JAVA_HOMErt.jarJAVA_HOME


答案 1

问题是JavaVm.framework版本内的符号链接“CurrentJDK”指向旧的jdk,所以当我使用以下命令将CurrentJDK设置为最新的(1.7.0_45)时,它可以工作。

cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK

参考资料: http://java.dzone.com/articles/installing-jdk-7-mac-os-x


答案 2

在 Mac OS X 上,您应该使用 /usr/libexec/java_home 来确定正确的JAVA_HOME。

请参阅我应该在 OSX 上设置JAVA_HOME