私はEclipse IDEを今日Ubuntu Linuxにインストールし、「新しいソフトウェアのインストール」を使用してJavaFXをインストールしました。javafxプロジェクトを作成すると、Main.Javaで次のエラーが発生しました。
インポートjavafxを解決できません。
そこで、「jfxrt.jar」を検索するために次のディレクトリをリストしました。
ls -l /usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/ext
しかし、「jfxrt.jar」が見つかりませんでした。
Java -version
出力:
openjdkバージョン "1.8.0_45-internal"
OpenJDKランタイム環境(ビルド1.8.0_45-internal-b14)
OpenJDK 64ビットサーバーVM(ビルド25.45-b02、混合モード)
パッケージリスト のUbuntu Vividによると、openjfxという名前のパッケージがあります。これはあなたが探しているものの候補になるはずです:
JavaFX/OpenJFX 8-Java用のリッチクライアントアプリケーションプラットフォーム
次の方法でインストールできます。
Sudo apt-get install openjfx
UbuntuシステムのOpenJDKインストールに 次のJARファイル を提供します。
/usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/ext/jfxrt.jar
/usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/jfxswt.jar
/usr/lib/jvm/Java-8-openjdk-AMD64/lib/ant-javafx.jar
/usr/lib/jvm/Java-8-openjdk-AMD64/lib/javafx-mx.jar
お役に立てれば。
Ubuntu LinuxにMavenを設定する方法は次のとおりです。
1)OpenJFXパッケージをインストールし、ファイルを配置した場所を確認します。
Sudo apt install openjfx
dpkg-query -L openjfx
最終的にJDK 11のバージョンになる可能性があります。その場合は、新しいOpenJDKをインストールするか、JDK 8のOpenJFXのバージョンを設定します。
2)system
スコープの依存関係としてMavenプロジェクトに配置します。
これは怠惰で、あまり良くない方法です。適切には、次のようにjarをインストールする必要があります。
dpkg-query -L openjfx | grep -E '.jar$' | xargs -l -I{} \ mvn install:install-file -Dfile="{}" -DgroupId=javafx \ -DartifactId=$(echo $JAR | tr '.' '-') -Dversion=1.0 -Dpackaging=jar
そして、それを通常の
compile-scoped
依存関係として使用します。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.source.level>1.8</project.source.level>
<project.target.level>1.8</project.target.level>
<javafx.dir>/usr/share/openjfx/lib</javafx.dir>
</properties>
<dependencies>
<!-- JavaFx :
Sudo apt install openjfx
dpkg-query -L openjfx
-->
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-base</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.base.jar</systemPath>
</dependency>
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-controls</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.controls.jar</systemPath>
</dependency>
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.fxml.jar</systemPath>
</dependency>
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.graphics.jar</systemPath>
</dependency>
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-media</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.media.jar</systemPath>
</dependency>
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-swing</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.swing.jar</systemPath>
</dependency>
<dependency>
<groupId>javafx</groupId>
<artifactId>javafx-web</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${javafx.dir}/javafx.web.jar</systemPath>
</dependency>
</dependencies>
A)1.8などの互換性のあるJDKを使用していることを確認し、かつ
B)Eclipse Project Facetsで互換性のあるバージョンのJavaを構成します。
Java 11の場合、JavaFXがJava 11から削除され、スタンドアロンとして提供されるため、このエラーも表示されます。