web-dev-qa-db-ja.com

致命的なエラーのコンパイル:無効なターゲットリリース:1.8 - > [ヘルプ1]

無効なターゲットリリースに投稿されたものと似たような問題:1.7 しかしブログをフォローしても私の問題は未解決です。

目標org.Apache.maven.plugins:maven-compiler-plugin:3.1:プロジェクトhm_appでコンパイル(デフォルト - コンパイル)を実行できませんでした:致命的なエラーコンパイル:無効なターゲットリリース:1.8 - > [ヘルプ1]

この問題に直面したとき、私は をチュートリアル としてフォローしていました。

abt Java & mvn

C:\mvn>echo %Java_HOME% 
C:\mvn>echo %JRE_HOME%
C:\mvn>echo %MAVEN_HOME% yields

アウトプット

C:\Program Files\Java\jdk1.7.0_51
C:\Program Files\Java\jre7
C:\Apache-maven-3.0.4
143
rvd

%Java_HOMEをjdk 1.7に設定しましたが、1.8を使ってコンパイルしようとしています。 jdk 1.8をインストールし、あなたの%Java_HOMEがそれを指していることを確認するか、またはターゲットリリースを1.7に削除してください。

無効なターゲットリリース:1.8

ターゲットリリースはjdkバージョンを指します。

239
Zavior

値をプラグインに入れます。

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.1</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>

エラーはuseでした:

<source>${Java.version}</source>
<target>${Java.version}</target>
23
Camila Macedo

私の場合、Mavenの "Run configuration"は間違ったJRE(1.7)を使っていました。 Run - > Run Configurations - >(Tab)JRE をチェックしてjdk1.8.xにしてください。

19
Roland Ettinger

私は1.7を指すJDKと1.8を指すJREを持っていたので、問題は解決されました。チェックインコマンド入力を促す

Java -version

そして

javac -version.

両方とも同じでなければなりません。

12
Bikramjit Saha

Eclipseのためにここに私は私の問題を解決した方法です:

  1. [設定] - > [コンパイラ] - > [コンパイラの苦情レベル](1.8に変更) enter image description here

  2. 「設定」 - >「インストールされたJRE」 - >「Java SE 8 1.8」を選択/ enter image description here

  3. 「Run as maven build」を使用して、mavenを介して再ビルドします。

無効なターゲットエラーは表示されなくなります。
注:私は自分の端末で他の変数を設定または変更する必要はありませんでした。お役に立てれば。

3
РАВИ

それをあなたの.profileに入れると、動的にあなたの$Java_HOMEの世話をするでしょう

export Java_HOME=$(/usr/libexec/Java_home)

その後シェルを閉じ、新しいシェルを開いてでテストしてください。

echo $Java_HOME

次のように表示されるはずです。

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

そうでない場合 、起動スクリプト内の他のJava_HOMEの割り当てを削除します。これらのスタートアップスクリプトは.で始まるので、それらは隠されており、*ワイルドカードを使用するときには含まれないことに注意してください。ホームディレクトリのすべてのファイルをgrepしたい場合は、次の手順を実行する必要があります。

grep -s Java_HOME ~/.* --exclude=.bash_history
1
lilalinux

互換性のある1.8 Jarバージョンをビルドしている間に実行環境でJREバージョンを実行コンフィギュレーションから1.8に更新し、RUNを押す、Maven Updateを実行します。

0
Sandy

Windowsマシンでは一時的にJavaのバージョンを設定できます。
たとえば、バージョンをJava 8に変更するには、cmdで次のコマンドを実行します。

set Java_HOME=C:\\...\jdk1.8.0_65
0
user1316369

私が直面していた問題は、Eclipseからではなく、PromptコマンドからMavenビルドを作成できたことでした。Eclipseで私にとってうまくいったのは、実行構成を変更せずにJDK内のJREフォルダーを指すことです。標準に従ってのみJDKフォルダ。この解決策はあなたのために同様に働くかもしれませんが、すべてのJavaパスが正しい、そしてJavaとjavacがpom.xmlのターゲットに存在するものと同じバージョンを示している場合に限りこれを試してください。

0
Vaibhav Gupta

Eclipse IDEを使用している場合は、[ウィンドウ]メニューから[設定]を選択し、インストールされているJREを検索して、プロジェクトのビルドに必要なJREを選択します。

0
Himanshu Kumar

Camila Macedoが述べたように、compiler-pluginのJavaバージョンを明示的に指定する必要があります。スプリングブートの場合は、次のプロパティで実行できます。

  <properties>
    <Java.version>1.8</Java.version>
    <maven.compiler.release>8</maven.compiler.release>
  </properties>
0
M. Gryshenko

この質問ではDockerについて明確に質問していませんでしたが、1.9をターゲットとしているpom.xmlファイルを持っていたときに同じエラーが発生しました。

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <maven.compiler.source>1.9</maven.compiler.source>
  <maven.compiler.target>1.9</maven.compiler.target>
</properties>

...しかしそれからDockerコンテナに対して "maven"を単独で指定してテストを実行しようとしました。

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven mvn -e test

私にとって、修正は私が必要とした正確なバージョンをターゲットにすることでした。

docker run -t --rm -v m2_repository:/root/.m2/repository -v $(pwd):/work -w /work maven:3.5.2-jdk-9 mvn test

(あなたは ここでもっと学ぶことができます 。)

0
Grant

私はこの問題がDokkuにデプロイされているという問題に直面しました。何らかの理由でJDK 1.7を選択していました

system.propertiesファイルを作成し、Java.runtime.version=1.8を設定することで問題は解決しました。 Dokkuは現在Javaバージョン8を使用しています。 HerokuでJDKを選択する

私は前にそれをしなければならなかった...