安装Java JDK 7之后对于Mac OS X - mvn -version仍然显示java版本1.6.0_31

Bru*_*ips 117 java macos maven java-7

Oracle于4月26日为Mac OS X发布了Java JDK 7.我按照安装说明进行操作,当我在终端窗口中执行java -version时,我得到:

java version "1.7.0_04"
Java(TM) SE Runtime Environment (build 1.7.0_04-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.0-b21, mixed mode)
Run Code Online (Sandbox Code Playgroud)

但是,当我mvn -version在终端窗口中进行时,我得到:

Apache Maven 3.0.2 (r1056850; 2011-01-08 18:58:10-0600)
Java version: 1.6.0_31, vendor: Apple Inc.
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.7.3", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud)

如何让Maven使用Java JDK 1.7.0_04?

谢谢您的帮助.

Bru*_*ips 126

终于找到了答案:

http://www.adam-bien.com/roller/abien/entry/java_se_development_kit_7

您应该JAVA_HOME=$(/usr/libexec/java_home)在Mac上使用,然后通过"Java Preferences.app"设置当前的jdk.

在〜/ .profile中设置JAVA_HOME

  • 我添加到〜/ .bash_profile:export JAVA_HOME = $(/ usr/libexec/java_home) (5认同)
  • 我最近安装了Java 6,我无法找到JavaPreferences.app bcz mac现在不提供对Java的支持.现在可以告诉我如何在不使用JavaPreferences的情况下设置我的jvm. (4认同)
  • 你可以接受自己的答案.这将向我们所有其他人展示这解决了这个问题.而你将有10个以上的:) (2认同)

Mah*_*dam 34

问题是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
Run Code Online (Sandbox Code Playgroud)

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


dmo*_*ony 17

要从Java首选项中查找路径,请尝试 /usr/libexec/java_home -X

我的Java7条目如下所示:

<dict>
    <key>JVMArch</key>
    <string>x86_64</string>
    <key>JVMBundleID</key>
    <string>com.oracle.java.7u04.jdk</string>
    <key>JVMEnabled</key>
    <true/>
    <key>JVMHomePath</key>
    <string>/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home</string>
    <key>JVMIsBuiltIn</key>
    <false/>
    <key>JVMName</key>
    <string>Java SE 7</string>
    <key>JVMPlatformVersion</key>
    <string>1.7</string>
    <key>JVMVendor</key>
    <string>Oracle Corporation</string>
    <key>JVMVersion</key>
    <string>1.7.0_04</string>
</dict>
Run Code Online (Sandbox Code Playgroud)

  • grrrrr,我做了那个,它为我的jdk1.7列出的路径根本不存在:( (6认同)

Nat*_*ate 9

您需要将JAVA_HOME环境变量更改为新的JDK 1.7位置.

请查看此问题,了解可能定义JAVA_HOME的位置.在终端中,键入which java以查找Java安装的路径,然后更新JAVA_HOME以指向该路径(但排除尾随bin文件夹).


Con*_*eer 7

如果有人在64位Mac上安装Maven,运行Mac OSX'Mavericks'可以节省一些时间,并试图安装Maven.我试图遵循这个(失败,因为java_home的位置在Mavericks上发生了变化:

http://maven.apache.org/download.cgi

我把头发拉出来,直到找到这个网站,建议您安装自制软件并按照此页面上的说明操作:http://techspunky.blogspot.in/2013/10/how-to-install-maven-on-mac -osx-109.html

一旦完成,当$ maven -version不起作用时不要惊慌,而是使用$ mvn --version作为maven.apache.org/download.cgi推荐.

它工作,但后来我注意到Java SDK Maven使用的是Java版本:1.6.0_65,这不是我在系统上安装的最新SDK.

一旦我设置了JAVA_HOME =/usr/libexec/java_home

它使用了正确的SDK:Maven home:/usr/local/Cellar/maven/3.1.1/libexec Java version:1.7.0_45,vendor:Oracle Corporation Java home:/Library/Java/JavaVirtualMachines/jdk1.7.0_45. jdk/Contents/Home/jre默认语言环境:en_US,平台编码:UTF-8操作系统名称:"mac os x",版本:"10.9",arch:"x86_64",系列:"mac"

成功!但是等等......下次我打开终端并运行mvn -v它又回到了java 1.6版本.WTH!

它是我读过的一些假设的错误:echo JAVA_HOME = /usr/libexec/java_home -v 1.7| sudo tee -a/etc/mavenrc

现在:

Maven主页:/usr/local/Cellar/maven/3.1.1/libexec Java版本:1.7.0_45,供应商:Oracle Corporation Java home:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre默认语言环境:en_US,平台编码:UTF-8操作系统名称:"mac os x",版本:"10.9",arch:"x86_64",系列:"mac"