Maven, JAVA_HOME w/ OS X
Trying to get Maven, Java, and OS X to play nice together - something I've done multiple times without issue on Linux and Windows machines. I assumed all I needed to do was download Maven, setup my environment variables and I'd be good. So here's a snippet from my .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
The JAVA_HOME
setting is what Apple recommends be used on this Q&A page. Yet after launching a terminal and running mvn --version
, here's the output...
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"
Any idea why the JAVA_HOME
I'm setting in my .bash_profile is being ignored by Maven? It's causing problems because things like rt.jar
aren't found in the JAVA_HOME
Maven is using. I can work arou开发者_开发知识库nd this by creating symbolic links and other hackery in the home Maven is using, but I'd rather have it work correctly since this will just blow up on me the next time Apple pushes a Java update. Thanks for any help...
The problem is that the symbolic link "CurrentJDK" inside the versions of JavaVm.framework points to the old jdk, so when i used the following commands to set the CurrentJDK to the latest one (1.7.0_45) it works
cd /System/Library/Frameworks/JavaVM.framework/Versions
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents CurrentJDK
reference: http://java.dzone.com/articles/installing-jdk-7-mac-os-x
On Mac OS X, you should use /usr/libexec/java_home to determine the correct JAVA_HOME.
See What should I set JAVA_HOME to on OSX
On my Mac, /Library/Java/Home is a symlink (actually the start of a chain of symlinks) that ultimately points to /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home. So I don't think maven is ignoring anything. It's just giving you the actual location.
I have the same setup and all works fine. UNSET the "JAVA_HOME" environment variable in your shell script. The Mac install takes care of that. You are setting it wrong anyways.
Unset it, source your file or startup shell and try again.
well the first thing I would check is whether mvn is a script. If it is you can see how it's sourcing the environment. If it isn't I would look for any config files typically named .mvnrc, or something in /etc. Of course it wouldn't hurt to RTFM!
精彩评论