我Java 1.6安装了OSX ,并jenv随同安装了Java 1.7:
Java 1.6
jenv
Java 1.7
$ jenv local '1.7' $ jenv versions system 1.6 1.6.0.65 * 1.7 (set by /Users/me/workspace/.java-version) 1.7.0.79 oracle64-1.6.0.65 oracle64-1.7.0.79
jenv在将其$ java -version设置为1.6时显示1.6,而在将其设置为1.7时显示1.7:
$ java -version
$ java -version java version "1.7.0_79" <--------------------------------- YAY!! Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
…但是Maven忽略了我的设置:
$ mvn -version Apache Maven 3.0.2 (r1056850; 2011-01-08 19:58:10-0500) Java version: 1.6.0_65, vendor: Apple Inc. <--------------------------------- BAH!! Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home Default locale: en_US, platform encoding: MacRoman OS name: "mac os x", version: "10.8.5", arch: "x86_64", family: "mac"
我发现了这个问题],这个家伙只需要在JAVA_HOME内部对其进行硬编码.mavenrc,但是我不希望自己进行硬编码(因此jenv!),而且我也没有~/.mavenrc或/etc/mavenrc。
JAVA_HOME
.mavenrc
~/.mavenrc
/etc/mavenrc
它使用的版本似乎来自/usr/libexec/java_home输出中的第一个版本,因此在短期内,通过调整1.7的Info.plist文件),我能够再次获得1.6 ,但这仅意味着我获得了1.6而不是1.7 。
/usr/libexec/java_home
Info.plist
有任何想法吗?
您需要安装jenv maven插件,尝试以下命令并重新加载shell:
jenv enable-plugin Maven