2017-05-07 10 views
0

Macでサンプルのspring-bootプロジェクトを作成しました。JavaでJavaでSpringブート、サポートされていないmajor.minorバージョン51.0

Exception in thread "main" java.lang.UnsupportedClassVersionError: 
org/apache/maven/cli/MavenCli : unsupported major.minor version 51.0 

義務スタックトレースで、もちろん続く:私は(例えばmvn spring-boot:runなど)、その上のMavenコマンドを実行しようとする。しかし、私は次のエラーを取得します。私は、他の多くの類似した質問(同じではない)についての解答を読んで、もっと新しいバージョンのJavaでコンパイルしてから、以前のバージョンのJavaで実行していることを知っています。このチャートによると:

J2SE 8 = 52 
J2SE 7 = 51 
J2SE 6.0 = 50 
J2SE 5.0 = 49 
JDK 1.4 = 48 
JDK 1.3 = 47 
JDK 1.2 = 46 
JDK 1.1 = 45 

私は何とかのJava 7でコンパイルされている必要があり、その後、何らかの形でのJava 6で実行しかし、私はこれがそうすることができますどのように理解していません。私は、端末にjava -versionを入力したとき、私は、一つにはJavaの8を使用していますかなり確信して、私が手:

java version "1.8.0_25" 
Java(TM) SE Runtime Environment (build 1.8.0_25-b17) 
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) 

また、私のポンポンは明らかにJavaの8を使用するように指定します。

<project> 

    <!-- project info --> 

    <name>springboot-demo</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.3.RELEASE</version> 
     <relativePath /> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
    </properties> 

    <!-- dependencies --> 

    </project> 

これまでに読んだことは、Java 6でコンパイルするか、単にJava 8を使用すると答えたのですが、Java 8を使用しています。また、「52.0」ではなく「51.0」と表示されているので、Java 7でコンパイルしているとは限りません。私が知る限り、私はJava 8だけを使用しています!

この問題を解決するにはどうすればよいですか?

答えて

2

問題は、私が明示的なJAVA_HOMEを持っていなかったという事実にあります。端子にwhich javaを入力するとき

、私は単に/Library/Java/JavaVirtualMachines/{jdk-version}/Contents/Home/bin/javaを指すシンボリックリンクである /usr/bin/java
になるだろう。

はJavaVirtualMachinesディレクトリの下に、私は2つのフォルダを持っていた:

  • 1.6.0.jdk
  • は、だから私はInfactはの後にJava 6のインストールを持っていなかった

をjdk1.8.0_25.jdkすべて!/usr/bin/javaがJava 8のディレクトリを指していて、端末のバージョンがJava 8だったにもかかわらず、mavenを実行しようとしたときにJava 6のインストールを使用していました!

これを解決するには、JAVA_HOME環境変数を設定してPATHに追加する必要がありました。私がこれをする前に、端末にecho $JAVA_HOMEと入力すると、何も返されませんでした。

自分のホームディレクトリに.bash_profileという名前のファイルを作成しました(まだ持っていないので)。私はそれに次のように置く:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home 
    export MAVEN_HOME=/Applications/apache-maven-3.3.9 
    export PATH=$PATH:$MAVEN_HOME/bin:$JAVA_HOME/bin 

私は、私の端末を再起動し、私のプロジェクトにナビゲートし、mvn spring-boot:runを入力し、それが魅力のように働きました!

+0

'export JAVA_HOME = $(/ usr/libexec/java_home)'を '.profile'に追加すると、常に' JAVA_HOME'が現在のバージョンに設定されます。 '/ usr/libexec/java_home -h'はさらにいくつかの情報を表示します –

関連する問題