我按照以下步骤安装了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中写了回声,就像这样:
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$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
答案 0 :(得分:275)
问题是因为您没有正确设置Mac中的JAVA_HOME。为了做到这一点,你应该这样设置:
<强> export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
强>
在我的情况下,我的JDK安装是jdk1.8.0_40,请确保输入你的。
然后你可以使用maven命令。
问候!
答案 1 :(得分:16)
请尝试:
$JAVA_HOME/bin/java -version
Maven使用$JAVA_HOME
进行JRE库的类路径解析。
为了确保使用某个JDK,请在编译之前明确设置它,例如:
export JAVA_HOME=/usr/java/jdk1.7.0_51
没有版本&lt; 1.7你和你使用Maven 3.3.1?在这种情况下,原因是一个新的先决条件:https://issues.apache.org/jira/browse/MNG-5780
答案 2 :(得分:7)
动态$HOME/.zshrc
解决方案,如果你像我一样,即。 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
答案 3 :(得分:3)
我解决了它使用brew:
放置旧版maven(2.x)brew uninstall maven
brew tap homebrew/versions
brew install maven2
答案 4 :(得分:2)
在Eclipse中,您不需要更改JAVA_HOME,只需要将Maven的运行配置更改为1.6以上(即使您的项目在Java 6上,Maven也不应该)。右键单击该项目,选择Maven Build或Run As&gt;运行配置并设置正确的JDK版本。
答案 5 :(得分:0)
在.profile中执行此操作 -
导出JAVA_HOME =`/ usr / libexec / java_home`
(反引号确保执行命令并将其值放在JAVA_HOME中)