Maven使用更高版本的Java

时间:2013-11-12 13:21:23

标签: java macos maven

我通过Homebrew安装了Maven:

brew install maven

一切顺利,但是当我要求Maven版本时,有一个通知Maven使用旧版本的Java:

macbook:~ jirka$ mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 17:22:22+0200)
Maven home: /usr/local/Cellar/maven/3.1.1/libexec
Java version: 1.6.0_65, vendor: Apple Inc.
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Default locale: cs_CZ, platform encoding: MacCentralEurope
OS name: "mac os x", version: "10.9", arch: "x86_64", family: "mac"

但我使用Java 7进行开发,并且在所有系统中使用版本7:

macbook:~ jirka$ java -version
java version "1.7.0_45"
Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
macbook:~ jirka$ 

我想问你,这是Maven使用更高版本Java的问题吗? Maven使用的Java版本与Java 7编写的应用程序之间是否存在一些后果?

编辑 - 我的系统设置:

macbook:~ jirka$ env
TERM_PROGRAM=Apple_Terminal
SHELL=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/tx/c11w5sf11zj6qbfh5skp8kx00000gn/T/
Apple_PubSub_Socket_Render=/tmp/launch-85UUQ1/Render
TERM_PROGRAM_VERSION=326
TERM_SESSION_ID=AA674B2A-E20C-4B7F-BCD3-8DE637363A00
USER=jirka
SSH_AUTH_SOCK=/tmp/launch-XIC65i/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:29:56
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin
__CHECKFIX1436934=1
PWD=/Users/jirka
LANG=cs_CZ.UTF-8
SHLVL=1
HOME=/Users/jirka
LOGNAME=jirka
_=/usr/bin/env
macbook:~ jirka$ echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin
macbook:~ jirka$ echo $JAVA_HOME

macbook:~ jirka$

3 个答案:

答案 0 :(得分:1)

据我所知,您可能会遇到Java 7开发和Java 6 for Maven的一些问题。例如,您可以使用Java 7中不支持的Java 7的某些特定功能(如try-with-resources语句)。

尝试进入您的控制台:

echo $PATH

echo $JAVA_HOME

$ PATH可能指向Java 7,而$ JAVA_HOME指向Java 6。 如果是你的情况 - 编辑你的$ JAVA_HOME并指出你的Java 7安装。

答案 1 :(得分:1)

尝试使用jenv修复您的开发环境。

  

jEnv是一个命令行工具,可以帮助您忘记如何设置   JAVA_HOME环境变量

brew install https://raw.github.com/gcuisinier/jenv/homebrew/jenv.rb

jenv add /Library/Java/JavaVirtualMachines/jdk17011.jdk/Contents/Home oracle64-1.7.0.11 added

jenv global oracle64-1.7.0.11

答案 2 :(得分:0)

需要通过export命令设置JAVA_HOME系统变量:

macbook:~ jirka$ cat '.bash_profile' 
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`