web-dev-qa-db-ja.com

Eclipse 2018-09はコンパイルできませんJava 11 source;それは1.7以下だと思います

Windows 10でEclipse 2018-09(4.9.0)を実行しています。OpenJDK 11 GAを使用しています。 Java 8ソースコードを使用して指定されたMavenプロジェクトがあります。

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

これは、コマンドラインでMaven 3.5.3を使用して正常にコンパイルされます。また、Eclipse Eclipse 2018-09(4.9.0)を使用してコンパイルできます。

コンパイルJavaバージョンをJava 11に変更しました:

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

それでも、Maven 3.5.3を使用してコマンドラインで問題なくビルドできます。しかし、Eclipse 2018-09では、あちこちでエラーが発生します。

  • '<>' operator is not allowed for source level below 1.7
  • Constructor references are allowed only at source level 1.8 or above
  • Default methods are allowed only at source level 1.8 or above

あなたはアイデアを得る。

すでに使用していますAlt+F5 EclipseでMavenプロジェクト(およびサブプロジェクト)を更新します。完全にクリーンアップして再構築しました。

これはコマンドラインでMavenを使用して正常にコンパイルされるため、これはEclipseの問題である必要があります。もちろん、Eclipseはすべての新しいJava 11の機能をまだサポートしていませんが、このコードにはJava 11固有のfeatures。何が問題なのですか?

15
Garret Wilson

更新: Java 11は完全に統合されています inEclipseバージョン4.10以降(2018-12-19リリース)、そうではありませんもうこのプラグインをインストールする必要があります。


何らかの理由で、追加のEclipseプラグインをインストールする必要があります " Java 11 Eclipse for Eclipse 2018-09(4.9) "( Eclipse Photon 4.9でも)

Eclipse Marketplaceでプラグインが利用できなくなっていることがわかります。私は誰かがそのインストールURLを見つけました、ここに追加してください:

Works for Eclipse-このMavenコンパイラプラグイン構成でのSTS 4.0.1(Eclipse 4.9ベース)、Maven 3.6.0

        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>                
        </plugin>
5
Ralph

Eclipseはpomからバージョンを取得していないようです。

質問のようにコンパイラのソースとターゲットのプロパティを提供するか、この回答で説明されている新しいリリースプロパティ のいずれかを使用して、pom設定をテストし、動作することを確認しました 、最新の Eclipse 2018-09 プラグインのJava 11サポートを使用します。

JDK 11がEclipse設定で正しくセットアップされていることが重要です。 「Installed JRE」設定ページでJDK 11を追加し、「Execution Environment」設定ページでJavaSE-11と一致させます。それ以外の場合、Mavenプロジェクトを更新すると、デフォルトのJDKが使用されることになり、これが問題の原因である可能性があります。

3
kapex

この問題はEclipse 2018-12で修正されています。そのバージョンにアップグレードすると、問題が解決します。

0
Dan Greening