66

我安装了 OSX Java 1.6,我刚刚安装jenvJava 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"

我发现了这个 SO 问题,这个人只需要对他的JAVA_HOMEinside进行硬编码.mavenrc,但我不希望我的硬编码(因此jenv!),而且我没有~/.mavenrc,也没有/etc/mavenrc.

它使用的版本似乎来自输出中的第一个版本,因此在短期内我能够通过调整 1.7 的文件(来自此 SO post/usr/libexec/java_home )再次获得 1.6 ,但这只是意味着我得到 1.6 而不是 1.7 .Info.plist

有任何想法吗?

4

4 回答 4

155

您需要安装 jenv maven 插件,尝试以下命令并重新加载您的 shell:

jenv 启用插件 Maven

于 2016-05-26T16:21:23.123 回答
30

我有一个类似的问题。我通过为所有命令添加前缀来运行jenv exec

jenv exec mvn -version
于 2015-11-05T06:41:06.743 回答
15

现在,有一个新选项如何通过 jenv 导出插件设置 JAVA_HOME:

jenv enable-plugin export

https://github.com/gcuisinier/jenv/issues/44#issuecomment-233124185

于 2018-10-12T05:58:21.573 回答
1

如果您已启用mavenexport插件,但仍有问题,请检查您是否没有~/.mavenrc正在设置的文件JAVA_HOME

于 2021-10-30T23:15:14.510 回答