Maven 설치 OSX 오류 지원되지 않는 major.minor 버전 51.0


114

이 단계에 따라 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 sth에 다음과 같이 에코를 썼습니다.

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

2
TL; DR : Java 버전이 오래되었습니다. 사용 자바 1.7 +
Ajeet 강가

답변:


275

문제는 Mac에서 JAVA_HOME을 제대로 설정하지 않았기 때문입니다. 이렇게하려면 다음과 같이 설정해야합니다.

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

제 경우에는 JDK 설치가 jdk1.8.0_40입니다. 귀하의 것을 입력했는지 확인하십시오.

그런 다음 maven 명령을 사용할 수 있습니다.

문안 인사!


15
때 나는 또한 Maven3의 현재 버전은 Java7을 필요로주의, 적어도 나는이 오류 메시지를 받았습니다 JAVA_HOME 했다 올바르게 설정하지만, 자바 1.6 JDK에.
Steve Powell

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/"내 .profile이 필요 했습니다.
aliteralmind

제 경우에는 dir /Library/Java/JavaVirtualMachines이 비어 있습니다 ... 어떻게해야합니까? PSjava -version java version "1.6.0_65" Java(TM) SE Runtime Environment (build 1.6.0_65-b14-466.1-11M4716) Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-466.1, mixed mode)
LittleLittleQ

1
가지고있는 Mac OS X 버전에 따라 .profile 또는 .bash_profile 파일에이를 추가해야합니다.
Pacu 2015 년

또한 .profile 또는 .bash_profile에 추가 된 경우 터미널을 닫고 새 터미널을 시작해야이 파일의 내용이 다시 실행됩니다.
jotadepicas

16

차라리 시도하십시오 :

$JAVA_HOME/bin/java -version

Maven은 $JAVA_HOMEJRE 라이브러리의 클래스 경로 확인에 사용 합니다. 특정 JDK를 사용하려면 컴파일하기 전에 명시 적으로 설정하십시오. 예를 들면 다음과 같습니다.

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

버전이 1.7 미만이고 Maven 3.3.1을 사용하고 있습니까? 이 경우 이유는 새로운 전제 조건입니다 : https://issues.apache.org/jira/browse/MNG-5780


저도 현재 같은 문제로 고생하고 있습니다. "1.7 미만 버전이 없습니까?"란 무슨 뜻입니까? Java 1.6을 사용하고 있는데 너무 오래 되었습니까? 두 번째 질문 : "/ usr"아래에 "java"폴더가없고 System / Library 아래에만 있습니까? 어떤 도움을 크게 감상 할 수
프레데릭 비테을

6
Maven 3.3부터는 최소 요구 사항 JDK 1.7이 있습니다. JDK 1.6으로 컴파일하려면 Maven 3.2.5 이하를 사용해야합니다.
René

1
이미 작동하도록했습니다. :) JDK 1.7을 설치했지만 JAVA_HOME은 jdk 1.6을 참조했습니다
Frederik Witte

7

$HOME/.zshrc당신이 나 같은 경우, 즉 동적 솔루션. Linux @ work; 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

여기서 문제는 java_home이 설정되지 않았다는 것입니다. 설정되었지만 버전이 오래되었습니다.
Ajeet Ganga 2015


3

brew를 사용하여 이전 버전의 maven (2.x)을 넣어 해결했습니다.

brew uninstall maven
brew tap homebrew/versions 
brew install maven2

2

Eclipse에서는 JAVA_HOME을 변경할 필요가 없으며 Maven의 실행 구성을 1.6 이상으로 변경하기 만하면됩니다 (프로젝트가 Java 6에있는 경우에도 Maven이 아니어야 함). 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven 빌드 또는 실행 도구> 구성 실행을 선택하고 올바른 JDK 버전을 설정합니다.


0

.profile에서 수행하십시오-

export JAVA_HOME =`/ usr / libexec / java_home`

(백틱은 명령을 실행하고 해당 값을 JAVA_HOME에 배치해야 함)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.