問題タブ [openjfx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaFX アプリケーションの構築
Java 8 で JavaFX アプリケーションを作成しましたが、これを移植して Java 11 でビルドしたいと考えています。
私が最初にしたことはmodule-info.java
、必要なライブラリを作成して追加することでした。
OpenJFX の依存関係をgradle.build
以下に追加しました。
Gradle を更新した後も、次のようなエラーが発生しCannot resolve Symbol 'javafx.beans.property.StringProperty'
ました。
次に、次のmodule-info.java
ように変更しようとしました:
しかし、これは何も変更しませんでした。むしろエラーが発生しますModule not found: javafx.base
。
誰かが私が間違っていることを指摘できますか?
java - javafx.base はパッケージ javafx.beans を読み取ります
私のプロジェクトでは、IntelliJ IDEA の Gradle で OpenJDK 11 と OpenJFX 11.0.1 を使用しています。javafx.base モジュールを使用すると、モジュール要件に javafx.beans モジュール (beans は javafx.base モジュールのパッケージ) が含まれていないことを示すエラーが 1 行目 (プロジェクト モジュール宣言) で IntelliJ IDEA によって報告されます。Gradle jar タスクはエラーや警告なしで実行されるため、このエラーは IntelliJ IDEA に関連している可能性があります。
エラー メッセージ:「モジュール 'hr.caellian.lunar' は、'javafx.base' と 'javafx.base' の両方のパッケージ 'javafx.beans' を読み取ります」エラーは次の javafx モジュールに置き換えられます。
また、javafx モジュールの要件行で警告が表示されます:「あいまいなモジュール参照: javafx.base」の「javafx.base」など、各 javafx モジュールについて。
これが私のmodule-info.javaファイルです:
私はオンラインで解決策を少なくとも30分探しました。私が見つけたのは、すでに含まれているモジュールのみがJFXに必要であると言っているWebサイトだけでした(これはJavaFX 9用だったと思います)。
JavaFX モジュールを再ダウンロードして、何かをコピーし忘れたかどうかを確認しましたが、そうではありませんでした - javafx.beans モジュールが存在しません。
「java --list-modules」は、それが問題である場合、javafx モジュールをリストしませんが、jdk モジュールのみをリストする必要があり、OpenJFX は OpenJDK に含まれなくなりました。
OpenJFX SDK を JDK フォルダーにインストールし (lib ファイルを lib フォルダーにコピーしました。legal と同じ)、IDEA の JDK11 の lib フォルダーから javafx jar 依存関係ファイルを手動で追加しました。また、すべての jmod ファイルを JDK11 の jmod フォルダーに追加しました。
JavaFX モジュールに不適切な module-info.java ファイルなどがある可能性はありますか? これは IntelliJ IDEA のバグですか?