我安装了OSX,并安装了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 "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"
我找到了this SO question,该人只需要在
JAVA_HOME
内对他的.mavenrc
进行硬编码,但是我不希望自己进行硬编码(因此jenv
!),而且我没有~/.mavenrc
或/etc/mavenrc
。它使用的版本似乎来自
/usr/libexec/java_home
输出上的第一个版本,因此在短期内,通过调整1.7的Info.plist
文件(来自this SO post),我能够再次获得1.6,但这仅意味着我得到的是1.6而不是1.7 。有任何想法吗?
最佳答案
您需要安装jenv maven插件,尝试以下命令并重新加载Shell: