JavaFXに問題があります。少なくとも何か、デスクトップまたはモバイルのアプリの作成を開始したかった。そのため、JavaFXライブラリを使用できることがわかりました。しかし、私が理解した限りでは、JDK 9から除外されました。実際、Ubuntu 18でOpenJDK 11を使用しています(EclipseはJavaSE 10環境を持っていると書いています) Sudo apt install openjfx
を使用すると、EclipseをJavaFXで動作させることができません。
付属のJavaFXでJDK 8を使用しない意味があるかどうかはわかりませんが、とにかく、Eclipseのそのような条件でJavaFXを使用するにはどうすればよいですか?
投稿には説明が必要な複数のポイントがあります。さまざまな箇条書きで答えようとします。
しかし、私が理解した限りでは、それ(JavaFX)はJDK 9から除外されました。
JavaFXは、JDK 11以降、Oracle JDKから分離されます。JavaFXはOpenJDKの一部ではなかったため、Oracle JDKに重点を置いています。 OpenJDK 8でもありません。
私は実際にはUbuntu 18でOpenJDK 11を使用しています(EclipseはJavaSE 10環境を持っていると書いていますが、そこも少し混乱しています)
EclipseでJava 11をサポートするには、 Eclipse PhotonのJava 11サポート プラグインをインストールする必要があります。
ここにいくつかあります EclipseでJava 11アプリケーションを実行する方法の例
Sudo apt install openjfx
を使用してopenjfxをインストールしましたが、JavaFXでEclipseを動作させることができません。付属のJavaFXでJDK 8を使用しない意味があるかどうかはわかりませんが、とにかく、Eclipseのこのような条件でJavaFXを使用するにはどうすればよいですか?
OpenJDK 11またはOracle JDK 11はJavaFXにバンドルされないため、最善の方法は、JavaFX SDKを here または here からダウンロードしてIDEにロードすることです。
ツールの構築に慣れている場合は、 Maven Centralで利用可能なJavaFXランタイムjar を直接使用できます。
OpenJDK 11でJavaFX 11を実行する方法のチュートリアルについては、次を参照してください。
この投稿を書いている時点で、JavaFX 11を使用するには Eclipse 4.9M が必要です。
Eclipse、JDK 11、およびJavaFX 11 SDKを入手したら、次のいずれかの作成を選択できます。
module-info.Java
は不要)モジュールベースのプロジェクト
Javaプロジェクトを作成し、Java FX 11 SDKのJavaFX jarをプロジェクトのモジュールパスに追加します。
module.info
を作成し、javafx.controls
モジュールの依存関係を宣言します。 javafx11
は、Javaファイルを含むパッケージの名前です。
module javafx11 {
requires javafx.controls;
exports javafx11;
}
プログラムを実行します\ o /
非モジュールベースのプロジェクト
Javaプロジェクトを作成し、Java FX 11 SDKのJavaFX jarをプロジェクトのモジュールパスまたはクラスパスeitherに追加します。
次のJVM引数をプロジェクトの実行構成に追加します。
--module-path=path-to-javafx-skd/lib --add-modules=javafx.controls
プログラムを実行します\ o /
JavaFXを最も簡単に開始するには、 JavaFX 8 がバンドルされており、簡単に入手できるOracleブランドのJava 8リリースを使用してください。
技術的な詳細については、 JRE 8でのJavaFXの使用 を参照してください。関連する多くのWebページのLinkedおよびRelatedセクションをご覧ください投稿。
Javaプラットフォームは、modularizationとして知られる抜本的な再定式化のプロセスにあります。
以前は、 Java SE (標準版)はソフトウェアの1つの大きなモノリスでしたが、ますます増え続けています。単一のアプリですべてを使用することはありません。
Java SEを多数の個別のチャンクに分割して、「モジュール」として正式に定義することを決定しました。大きな利点の1つは、実際に必要なモジュールのみで構成され、未使用のモジュールを省略したJava SEランタイムにアプリをバンドルできることです。 jlink ツールを参照してください。
このモジュール化の副産物として、 CORBA などの古くて人気のない部分が削除され、Javaの標準部分として提供されなくなりました(提供されていますが)他の当事者がそのように決定した場合にピックアップするため)。同様に、いくつかの Java EE 関連モジュールはJava SEから削除され、論理的にはより適切なホームである Jakarta EE プロジェクトに引き継がれます。 JEP 320:Java EEおよびCORBA Modules を削除してください。
モジュール化と再編成のプロセスは、長年にわたる継続的な取り組みです。多くはJava 9およびJava 10で行われました。最終ステップのいくつかはJava 11.で行われています。
Java 11で行われているこれらの手順の1つは、Java SEとのJavaFXのバンドルを中止することです。見る:
したがって、Java 8を使用すると、JavaFX開発をすぐに開始できます。JavaFXライブラリはJava 8.にバンドルされています。また、モジュール化について学ぶ必要も、する必要もありませんモジュールを認識するためにIDE(Eclipseなど)とプロジェクトの設定に取り組んでください。 JavaまたはJavaFXの最後のバージョンを使用する緊急の必要性がない場合は、モジュール化プロセスとツールがスムーズになるまで、おそらく来年2019年まで8のままにしてください。
Java 11の使用を主張する場合、以下について学ぶ必要があります。
これらのポイントはここではカバーできないため、スタックオーバーフローに関する他の多くの質問でカバーされています。また、 Java 11 はまだ正式にリリースされていません。
おそらくこの記事が役立つでしょう JDK 11でJavaFXを使用してプロジェクトを作成する方法 。
Javaモジュール化の詳細については、 ブログ と本、 The Javaモジュールを読んでください。 System 、Nicolai Parlog。
約20台のコンピューターでこれに苦労しなければならなかったので、次のチェックリストを作成しました。
[ ] download javafx11 from javafx11's website, put on desktop
[ ] create a MODULE based project
[ ] right click project, go to BUILD PATH
[ ] add the downloaded javafx.base/control/graphics as external jar files
[ ] put the files in a package (eg: my_big_package)
[ ] put the following in the module.Java file:
module javafx11 {
requires javafx.controls;
exports my_big_package;
}
[ ] eat a donut from the break room
Eclipseと結婚していない場合、および/または単に学習しようとしている場合(または役に立たない教授/ TAを持つ学生である場合)、BlueJには現在JavaFXがすでに組み込まれているため、追加のセットアップやダウンロードは不要です。きちんとした!