IDEとしてEclipseを使用しています。プロジェクトを右クリックしてから[Maven]をクリックすると、Javaバージョンが1.5に変更されます。ここに私がこれまでやったこと、ここにリストされているすべてのステップを踏んだ
<build>
<plugins>
<plugin>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.1.3.v20140225</version>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugin</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
結局、「Maven update」をクリックすると、Javaバージョンが自動的に1.5に変更されます。また、上記の手順では、最初の2つの手順のバージョンも自動的に1.5に変更されます。どうすれば修正できますか?
pom.xml
ファイルを開き、次の行を追加します。
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
1.8
は、現在のJDK/JREのJavaバージョンです。これを行う別の方法は、<build>
をmaven-compile-plugin
とともに追加することです
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <!-- or whatever current version -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
編集
Javaバージョン9以降で動作する方法を探している場合は、 @ JDelorean'sanswerここで、彼にも賛成票を渡すことを忘れないでください:)
Javaをインストールしたときに同じ問題が発生しました。9。私のプロジェクトはデフォルトでJ2SE-1.5実行環境になります。奇妙なことに、Java 9コンプライアンスレベルは、以前のバージョン、つまり「1.8」のように参照されず、「9」として参照されます。そのため、それに応じてプロパティとMavenコンパイラプラグインの設定を提供する必要がありました。
<properties>
<maven.compiler.source>9</maven.compiler.source>
<maven.compiler.target>9</maven.compiler.target>
</properties>
そして
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>9</source>
<target>9</target>
</configuration>
</plugin>
これで問題が解決したようです。
この問題の根本的な原因は、何らかの理由でEclipseがvalid値を解決できないことですpomから.classpathファイルを生成/更新するときにmaven.compiler.source
プロパティを使用すると、デフォルトでorg.Eclipse.jdt.launching.JRE_CONTAINER/org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5
が使用されます。
@ jorge-campos が巧みに答えているように、そのプロパティを設定する方法は複数あります。
しかし、Jorgeの答えは表示されませんでした私のために働く。ここに私の設定がありました:
<properties>
<javaVersion>1.8</javaVersion>
<maven.compiler.source>${Java.version}</maven.compiler.source>
<maven.compiler.target>${Java.version}</maven.compiler.target>
</properties>
...
まさに。 ${Java.version}
はnever(完全に異なる)プロパティjavaVersion
に解決され、Eclipseはプロパティを無視し、デフォルトを使用しました。
これにより、私が開いた「何らかの理由」の部分に戻ります。開発者の愚かさは、これらの理由の1つです。
この行をpom.xmlに追加し、JREシステムライブラリを右クリック->プロパティ->正しい実行環境をJava 1.8または設定するバージョンに設定します。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <!-- or whatever current version -->
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
この問題がありました。私の場合、上記のJorge Camposが言及した<properties>タグとネストされたタグは間違った場所にありました。 pom.xmlファイルの<hostversion>タグと<dependencies>タグの間に配置すると、この動作は停止しました。
これらのファイルの検証がオンになっている場合、Eclipseでそれを拾うことができます。
チームメイトマシンの1つで同様の問題が発生します。彼は古いバージョンのEclipseを使用していました。私は彼がKepplerを使用していたと信じています。更新後のプロジェクトは、JREバージョンを1.5に変更します。
Eclipseを最新バージョンに更新するだけでこの問題は解決します。
Java 11.でその件名を更新することを許可します。
コンピューターにOpenJDK11をインストールしましたが、アプリで使用したかったのです。
Mavenを使用してプロジェクトを更新すると、Eclipseは常にJREをJavaSE-1.5に変更するため、問題が発生しました。
あなたが言ったようにすべてを設定しましたが、Alternante JREの1つとしてJava Build Path "Java-11-openjdk.x86_64"で常に直接選択していました。図に示すように、「実行環境」JavaSE-10(ただし、ダブルクリックしてから、互換性のあるJREとしてOpenJDK11バージョンを選択する必要があります)を選択して問題を修正しました。 実行環境のセットアップ
プロジェクトはそのおかげでJava 11を使用します(写真)が、pom.xmlでJavaバージョンに10を記述し、Project FacetsにJava 10を設定する必要があります。
私の場合(古いJBoss Developer Studio)、問題はJRE環境に1.8(1.7のみ)が含まれていなかったことです。 maven-compiler-plugin
バージョンを1.7に切り替えてmaven更新プロジェクトを実行すると、Eclipse JREシステムライブラリが1.7に更新されました。
そのため、解決策は、1.8以降の組み込みJRE環境を含む新しいIDEバージョンを取得するか、手動でインストールしようとします( https://stackoverflow.comを参照)/a/35204314 )