0

だから私はこの男とほとんど同じ問題を抱えています:

Maven インストール OSX エラー サポートされていない major.minor バージョン 51.0

そこには何も機能していません....問題はシンボリックリンクのどこかにあると思います。$JAVA_HOME を .bash_profile に定義し、 java -version でバージョンを正しく報告しました。しかし、何らかの理由で mvn は古いバージョンの Java を使用しようとしています。

私のマシン上のすべてのリストは次のとおりです。

/usr/libexec/java_home -verbose
Matching Java Virtual Machines (5):
    1.8.0_40, x86_64:   "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
    1.7.0_79, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
    1.7.0_75, x86_64:   "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
    1.6.0_65-b14-466.1, x86_64: "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
    1.6.0_65-b14-466.1, i386:   "Java SE 6" /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

1.8を使いたいです。そしてそれを認識するためにmvn。

これを実行すると:

ls -l `which java`
lrwxr-xr-x  1 root  wheel  74 May 24 22:46 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

そして、私が実行した場合:

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/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)

このシンボリックリンクの順序が間違っていることに気付きました:

cd /System/Library/Frameworks/JavaVM.framework/Versions
ls -l
total 64
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.4 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.4.2 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.5 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.5.0 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.6 -> CurrentJDK
lrwxr-xr-x  1 root  wheel   10 May 24 22:46 1.6.0 -> CurrentJDK
drwxr-xr-x  7 root  wheel  238 May 24 22:46 A
lrwxr-xr-x  1 root  wheel    1 May 24 22:46 Current -> A
lrwxr-xr-x  1 root  wheel   59 May 24 22:46 CurrentJDK -> /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents

「CurrentJDK」は実際にどこでも使用されていますか? また、リンクを更新するにはどうすればよいですか?

何が起こっているのか理解できません...すべてが新しいJavaを指しているようです.mvnはどこでどのようにJava 6を読んでいますか(サポートされていないメジャー.マイナーバージョン51.0)?

4

1 に答える 1

0

/System/Library/Frameworks/JavaVM.framework/Versions のシンボリック リンクは古い JDK を指していました。

これらのコマンドを実行すると修正されました:

cd /System/Library/Frameworks/JavaVM.framework/Versions 
sudo rm CurrentJDK
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/ CurrentJDK
于 2015-09-22T03:15:13.547 に答える