環境:
- OS:アプリケーションを開発および実行するために、OpenJDKの1.8とMavenの両方のWindowsプロ10(1809)とLinux(UbuntuのやDebianのようなもの)が使用されますインストールされています。
- JDK: OpenJDKの1.8
- IDE: IntelliJの究極
- ビルドツール Mavenを(マルチモジュールプロジェクトでは、1つのモジュールがJavaFXのを使用しています)
- 私は非常に支払われたライセンス(たとえ、このプロジェクトのために、私はおそらく自由のためのOracle JDKを使用することができます...)で使用するのは何も希望しません。
問題:
私は、JDK 1.8はJavaFXのが含まれてくることになっていることを、知っています。しかし、OpenJDKの1.8このため、何らかの形で、(Mavenの依存関係なしで、IntelliJのは受け入れていない場合ではないようimport javafx.application.Application;
でも、他のJFX輸入)。
このような理由から、私は、Mavenの依存関係としてそれを含めるようにしようとしています。私が使用している場合:
<!-- JavaFX -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
.
.
.
私は、次のエラーメッセージが表示されます。
Error:(3, 26) java: cannot access javafx.application.Application
bad class file: /C:/Users/kaspa/.m2/repository/org/openjfx/javafx-
graphics/11/javafx-graphics-11-win.jar!/javafx/application/Application.class
class file has wrong version 54.0, should be 52.0
Please remove or make sure it appears in the correct subdirectory of the
classpath.
使用して<version>12</version>
収量を[...]wrong version 55.0, should be 52.0[...]
。
最低は<version>
、Mavenの内部で<dependency>
、私は使用することができる午前BO 11に思えます。
質問:
- 私は追加することができます/私への変更を何かがある
pom.xml
私のアプリケーションのコンパイルと実行を行うためには? - 私は絶対にOpenJDKの11または12にアップグレードする必要がありますか?
まず、背景のビット。Javaの8からJavaの10に、OracleのJDKは、JavaFXのが付属していました。しかし、でもこれらのバージョンでは、JavaFXのは、OpenJDKのの一部ではありません。Javaの11からは、JavaFXのは、Oracle JDK(OpenJDKを持つケースがあったように)の一部ではありません。
だから、あなたは間違って何をしているのか?
あなたはJDK 8でJavaFXの11と12を実行しようとしている。これは不可能です。
あなたは何ができますか?
あなたはどちらかからそれらを構築することができopenjfx 8.ゲットソースや須藤はapt-Ubuntuの上を通してそれをインストールします。
JavaFXの8は、Mavenの依存関係として利用できますか?
ない私が知っています!
私のアドバイス.. 使用のOracle JDKあなたがJava8を使用するか、Javaの11にアップグレードし、Mavenの依存関係としてopenJFXを使用する場合。