IntelliJ:エラー:java:エラー:リリースバージョン5はサポートされていません


14

IntelliJ IDEA Ultimate 2019.3.1を使用しています。単純なJava Mavenプロジェクト(単純なHello Worldの場合もある)を開始しようとすると、常に次のエラーが発生します。

Error:java: error: release version 5 not supported

java --version端末で実行すると、次の出力が表示されます。

openjdk 11.0.5 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.1)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.1, mixed mode, sharing)

javac --version端末で実行すると、次の出力が表示されます。

javac 11.0.5

Javaコンパイラの設定に行く(ここで提案されているように)私はこれを見る:

Javaコンパイラ設定

ターゲットバイトコードバージョン」を1.8に編集してみましたが、次のエラーが発生します。

Error:(1, 26) java: package javafx.application does not exist
Error:(2, 20) java: package javafx.stage does not exist
Error:(4, 27) java: cannot find symbol
  symbol: class Application
Error:(12, 23) java: cannot find symbol
  symbol:   class Stage
  location: class Main
Error:(7, 9) java: cannot find symbol
  symbol:   method launch(java.lang.String[])
  location: class Main
Error:(11, 5) java: method does not override or implement a method from a supertype

バージョン1.11に変更すると、代わりに次のエラーが発生します。

Error:java: Source option 5 is no longer supported. Use 6 or later.

問題は何だと思いますか?どうすれば解決できますか?


プロジェクトとモジュールの言語レベルは何ですか?
Bas Leijdekkers

回答:


33

https://stackoverflow.com/a/12900859/104891を参照して  ください

まず、language level/ release versionsを次のように設定pom.xmlします。

<properties>
  <maven.compiler.source>1.8</maven.compiler.source>
  <maven.compiler.target>1.8</maven.compiler.target>
</properties>

それ以外の場合、Mavenはデフォルトを1.5に設定します。maven-compiler-pluginまだ追加していない場合は、も含める必要があります。

<dependency>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.8.1</version>
</dependency>

また、次の各場所でJavaバージョンを変更してみてください。

ファイル->プロジェクト構造->プロジェクト->プロジェクトSDK-> 11。

ファイル->プロジェクト構造->プロジェクト->プロジェクト言語レベル-> 11。

ファイル->プロジェクト構造->プロジェクト->モジュール->->ソース-> 11

プロジェクト内-> ctrl+ alt+ s->ビルド、実行、配置->コンパイラ-> Javaコンパイラ->プロジェクトのバイトコードバージョン-> 11

プロジェクト内-> ctrl+ alt+ s->ビルド、実行、配置->コンパイラ-> Javaコンパイラ->モジュール-> 1.11。


2
すべてを実行しましたが、アプリケーションを実行するたびに同じエラーが表示されます
Tushar Jajodia

@TusharJajodia maven-compiler-pluginが依存関係として含めようとする
Josh Johnson

運が悪ければオンラインでさまざまなソリューションを試した後、この特定の行で問題が修正されました:ファイル->プロジェクト構造->プロジェクト->モジュール->->ソース-> 11
Maude

2

実際の解決策を集約するのにしばらく時間がかかりましたが、このコンパイルエラーを取り除く方法は次のとおりです。

  1. Intelij設定を開く
  2. 「コンパイラ(または「compi」など)を検索します
  3. Maven-> javaコンパイラまでスクロールします。右側のパネルには、モジュールとそれに関連するJavaコンパイルバージョン「ターゲットバイトコードバージョン」のリストが表示されます。
  4. バージョン> 1.5を選択します。使用できない場合は、jdkをアップグレードする必要があります。ここに画像の説明を入力してください

1

親としてスプリングブートを使用している場合は、java.versionプロパティを設定する必要があります。これにより、正しいバージョンが自動的に設定されます。

<properties>
   <java.version>11</java.version>
</properties>

独自のプロジェクトで定義されたプロパティは、親pomで設定されたものをオーバーライドします。これにより、正しいバージョンにコンパイルするために必要なすべてのプロパティが上書きされます。

いくつかの情報はここにあります:https : //www.baeldung.com/maven-java-version


私は今、Spring Bootについても学び始めているので、この情報は私にとって本当に役立つでしょう:)もっと詳しく説明していただけますか?(どのファイルでこれらのプロパティを変更する必要がありますか、正確に何を書く必要がありますか?
Robb1

1
投稿にいくつかの追加情報を追加しました。
V Jansen


0

pom.xmlファイルに次のコードを追加すると、問題が解決しました。

<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>

0

pom.xmlに2行追加するだけで、問題は解消されます。
この2行をpom.xmlに追加します-

<!--pom.xml-->
<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>

0

IntelliJ内でpom.xmlファイルを開きます

前にこのセクションを追加します(ファイルにすでにセクションがある場合は、既存のセクションに以下の行を追加してください)。

<properties> 
      <maven.compiler.source>1.8</maven.compiler.source> 
      <maven.compiler.target>1.8</maven.compiler.target> 
   </properties>`

0

私の場合の唯一の有効な解決策は、次のブロックをに追加することでしたpom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version> <configuration> <release>12</release>
        </configuration>
        </plugin>
    </plugins>
</build>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.