0

我通过 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$
4

3 回答 3

1

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

尝试在您的控制台中输入:

echo $PATH

echo $JAVA_HOME

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

于 2013-11-12T13:28:18.137 回答
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
于 2013-11-12T13:39:17.670 回答
0

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

macbook:~ jirka$ cat '.bash_profile' 
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
于 2013-11-12T14:02:41.290 回答