Maven安装OSX错误不支持major.minor版本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.xx M2=/path/to/your/apache-maven-3.xx/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:我认为有一些版本是错误的,但我不知道。

 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$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.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 

问题是因为你没有在Mac中正确设置JAVA_HOME。 为了做到这一点,你应该这样设置:

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

在我的情况下,我的JDK安装是jdk1.8.0_40,确保你input你的。

然后你可以使用maven命令。

问候!

请尝试

 $JAVA_HOME/bin/java -version 

Maven使用$ JAVA_HOME来parsingJRE库的类path。 为了确保在编译之前使用某个JDK明确设置它,例如:

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

是不是有一个版本<1.7,你正在使用Maven 3.3.1? 在这种情况下,原因是一个新的先决条件: https : //jira.codehaus.org/browse/MNG-5780 。

一个dynamic的$HOME/.zshrc解决scheme,如果你像我一样ie。 Linux @ work; MBP / A @ home

 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 

我解决了把一个老版本的maven(2.x),使用brew:

 brew uninstall maven brew tap homebrew/versions brew install maven2 

在Eclipse中,您不需要更改JAVA_HOME,只需要将Maven的运行configuration更改为1.6以上(即使您的项目位于Java 6,Maven不应该)。 右键单击该项目,selectMaven Build或Run As> Run Configurations并设置正确的JDK版本。

在你的.profile中做这个 –

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

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