IntellJにJavaFXパッケージを認識させるのに問題があります。 OpenJDK 11を使用する新しいJavaFXプロジェクトでは、プロジェクトをビルドしようとすると、IntelliJはJavaFXパッケージを認識できません。
Mavenリポジトリからopenjfx:javafx-base-11
をインポートしました。
私は他の質問を見ましたが、解決策は、バイトコードが正しいレベルにあること(私の場合)と、プロジェクト言語が正しいこと(私の場合)の確認に及ぶようです。
誰にもアイデアはありますか?
編集:
エラー:
コメントで述べたように、 Starting Guide はJava 11およびJavaFX 11で始まる場所です。
Java 11の前と同じように機能するための鍵は、以下を理解することです
JavaFXプロジェクト
IntelliJで通常のJavaFXデフォルトプロジェクトを作成する場合(MavenまたはGradleなし)、SDKを here からダウンロードすることをお勧めします。 jmodもありますが、モジュール化されていないプロジェクトにはSDKが推奨されます。
デフォルトのプロジェクトを実行する簡単な手順は次のとおりです。
/Users/<user>/Downloads/javafx-sdk-11/lib/
のようなものです。これを実行すると、JavaFXクラスがエディターで認識されるようになります。デフォルトのプロジェクトを実行する前に、これらをVMオプションに追加するだけです。
--module-path /Users/<user>/Downloads/javafx-sdk-11/lib --add-modules=javafx.controls,javafx.fxml
走る
Maven
Mavenを使用してプロジェクトをビルドする場合、次の手順に従います。
JavaFX 11の依存関係を追加します。
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11</version>
</dependency>
</dependencies>
これを実行すると、JavaFXクラスがエディターで認識されるようになります。
Mavenが必要な依存関係を管理していることに気付くでしょう:javafx.basesにjavafx.baseとjavafx.graphicsを追加しますが、最も重要なのは、必要なclassifierベースを追加することですプラットフォームで。私の場合、Mac。
Jars org.openjfx:javafx-controls:11
がemptyである理由は、すべてのクラスとネイティブ実装を含む3つの可能な分類子(windows、linux、macプラットフォーム)があるためです。
それでも.m2リポジトリに移動し、そこから依存関係を手動で取得する場合は、正しいものを選択してください(たとえば、.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-mac.jar
)
デフォルトのMavenプラグインを here のプラグインに置き換えます。
mvn compile exec:Java
を実行すると、動作するはずです。
here で詳細に説明されているように、Gradleプロジェクトでも同様に機能します。
編集
言及された入門ガイドには、更新された ドキュメント およびIntelliJのサンプルプロジェクトが含まれています。
Maven/Gradleを使用しないJavaFX 11。 非モジュールサンプル または モジュールサンプル プロジェクトを参照してください。
Mavenを使用したJavaFX 11。 非モジュールサンプル または モジュールサンプル プロジェクトを参照してください。
Gradleを使用したJavaFX11。 非モジュールサンプル または モジュールサンプル プロジェクトを参照してください。
上記のどれも私にとってはうまくいきませんでした。発生した他のエラーをクリアするのに時間がかかりすぎました。これが最も簡単で最良の方法であることがわかりました。
これは、Jdk 11、12、およびOpenJdk12でもJavaFxを取得するために機能します!
module thisIsTheNameOfYourProject {
requires javafx.fxml;
requires javafx.controls;
requires javafx.graphics;
opens sample;
}
全部で5分しかかかりませんでした!!!
Java FXがJDK 11の一部ではなくなったという問題。次のソリューションは、IntelliJを使用して機能します(NetBeansで試したことはありません)。
JavaFXグローバルライブラリを依存関係として追加します。
設定->プロジェクト構造->モジュール。モジュールで「依存関係」タブに移動し、「+」記号の追加->ライブラリ-> Java->リストからJavaFXを選択し、「選択項目の追加」、「設定の適用」の順にクリックします。
JavaFXプロジェクトでソースファイル(src)を右クリックし、新しいmodule-info.Javaファイルを作成します。ファイル内に次のコードを記述します。
module YourProjectName
{ requires javafx.fxml;
requires javafx.controls;
requires javafx.graphics;
opens sample;}
これら2つのステップは、JavaFXのすべての問題を解決します。
参考:The Learn Programmingチャンネルが作成したYou Tubeチュートリアルがあり、上記の詳細をわずか5分で説明します。あなたの問題を解決するためにそれを見ることもお勧めします: https://www.youtube.com/watch?v=WtOgoomDewo