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バージョンが古い。Java-1.7 +を使用
Ajeet Ganga

回答:


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 れますが、Java 1.6 JDKです。
Steve Powell

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/".profileが必要でした。
aliteralmind 2015

私の場合、ディレクトリ/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 2015

1
お使いのMac OS Xのバージョンに応じて、これを.profileまたは.bash_profileファイルに追加する必要があります。
Pacu

また、.profileまたは.bash_profileに追加する場合は、ターミナルを閉じて、新しいターミナルを起動して、このファイルの内容が再度実行されるようにしてください。
jotadepicas 2016

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を使用していますが、古すぎますか?そして2番目の質問:「/ usr」の下に「java」フォルダがなく、システム/ライブラリの下だけにありますか?任意の助けいただければ幸いです
フレデリックヴィッテ

6
Maven 3.3以降、最小要件はJDK 1.7です。JDK 1.6でコンパイルする場合は、Maven 3.2.5以下でスタックする必要があります。
ルネ・

1
JDK 1.7がインストールされていましたが、JAVA_HOMEはjdk 1.6を参照していました
Frederik Witteの

7

$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

ここでの問題は、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でこれをしてください-

JAVA_HOME = `/ usr / libexec / java_home`をエクスポートします

(バッククォートは必ずコマンドを実行し、その値をJAVA_HOMEに配置してください)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.