Maven 安装 OSX 错误不支持 major.minor 版本 51.0

Maven Installation OSX Error Unsupported major.minor version 51.0

我按照以下步骤安装了 maven:(教程)

JAVA_HOME=/Library/Java/Home
export M2_HOME=/Users/steven/zimmermann/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

echo $JAVA_HOME
echo $M2_HOME
echo $M2
echo $PATH

nano .bash_profile

然后我在 .bash_profile 中写了 echo 这样的:

JAVA_HOME=/usr/libexec/java_home
M2_HOME=/path/to/your/apache-maven-3.x.x
M2=/path/to/your/apache-maven-3.x.x/bin
PATH=/path/to/maven/bin:/$….bla-bla-bla…

我也在 .bashrc 中写了这个

export M2_HOME=/Users/steven/zimmermann/maven
export M2=$M2_HOME/bin
export PATH=$M2:$PATH

现在,当我想检查版本 (mvn -v) 时,出现以下异常: 我认为有些版本不对,但我不知道。

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access[=15=]0(URLClassLoader.java:58)
    at java.net.URLClassLoader.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

附加信息:

java -version
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
javac -version
javac 1.8.0_40

请尝试:

$JAVA_HOME/bin/java -version

Maven 使用 $JAVA_HOME 来解析 JRE 库的类路径。 要确保使用某个JDK,在编译前明确设置,例如:

export JAVA_HOME=/usr/java/jdk1.7.0_51

没有 < 1.7 的版本并且您使用的是 Maven 3.3.1 吗?在这种情况下,原因是新的先决条件:https://issues.apache.org/jira/browse/MNG-5780

问题是因为您没有正确设置Mac中的JAVA_HOME。为此,您应该这样设置:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

在我的例子中,我的 JDK 安装是 jdk1.8。0_40,确保你输入你的。

然后就可以使用maven命令了

此致!

动态 $HOME/.zshrc 解决方案,如果您像我一样。 Linux@工作; MBP/A@家

if [[ $(uname) == "Darwin" ]]; then export OSX=1; fi
if [[ $(uname) ==  "Linux" ]]; then export LINUX=1; fi

if [[ -n $OSX ]]; then
        export JAVA_HOME=$(/usr/libexec/java_home)
else
        export JAVA_HOME=/usr/lib/jvm/default-java
fi

我使用 brew 解决了旧版本的 maven (2.x):

brew uninstall maven
brew tap homebrew/versions 
brew install maven2

在Eclipse中,你不需要更改JAVA_HOME,你只需要将Maven的运行配置更改为1.6以上的东西(即使你的项目在Java 6、Maven不应该)。 Right-click 项目,选择 Maven Build 或 运行 As > 运行 Configurations 并设置正确的 JDK 版本。

在您的 .profile 中执行此操作 -

导出 JAVA_HOME=`/usr/libexec/java_home`

(反引号确保执行命令并将其值放入 JAVA_HOME)