プロジェクト

全般

プロフィール

JavaFXのNetBeans設定

JDK11以降で、OpenJFX(JavaFX)をNetBeansから利用する設定について記述します。

確認環境

OS Windows 10 Windows 10 Pro 1803
JDK OpenJDK 11 OpenJDK 11.0.1+13
NetBeans NetBeans 10 Apache NetBeans IDE Dev (Build 20181121)

NetBeans のビルド環境

NetBeans は、プロジェクトのビルド環境として標準では Ant および Maven を使用します。

JavaFXライブラリの設定(Ant)

  • [Tools]メニュー > [Libraries]をクリックし、「Ant Library Manager」画面を表示します。
  • [New Library...]ボタンをクリックし、Library Name欄に"JavaFX 11"と記入します。Library Type欄はClass Librariesが選択された状態になっており、他に選択肢はないのでそのままにして[OK]ボタンを押します。

New_Library-1.png

  • 「Ant Library Manager」画面で、左側ペインで今作成したJavaFX 11を選択し、右側ペインの[Classpath]タブを選択し、[Add Jar/Folder...]ボタンを押します。
  • 「Browse JAR/Folder」ダイアログが表示されるので、JavaFX SDKをインストールしたディレクトリ下のlibディレクトリにある各JARファイルをすべて複数選択し、[Add JAR/Folder]ボタンを押します。

New_Library-2.png

  • 「Ant Library Manager」画面で、右側ペインの[Sources]タブを選択し、[Add Jar/Folder...]ボタンを押します。
  • 「Browse JAR/Folder」ダイアログが表示されるので、JavaFX SDKをインストールしたディレクトリ下のlibディレクトリにあるsrc.zipを選択し、[Add JAR/Folder]ボタンを押します。

New_Library-3.png

JavaFXライブラリを使用するプロジェクト設定(Ant)

クラスパスへの使用設定

JDK 9からは、従来のJARファイルとクラスパスによる設定に加えて、モジュールファイルとモジュールパスによる設定が行えるようになりました。
JDK 11の設定としてはモジュールパスを使用することを目標としますが、敷居が高いので、まずは従来のクラスパス設定を行います。

  • JavaFXを使用するプロジェクトをプロジェクトペインで選択し、右クリックしコンテキストメニューから[Properties]を選択します。
  • 「Project Properties」画面が表示されるので、右側ペインの[Libraries]を選択し、右側ペインで[Compile]タブを選択します。

Setting_Library-1.png

  • Classpathの右端にある[+]ボタンを押すとポップアップメニューが表示されるので、[Add Library]を選択します。
  • 「Add Library」画面が表示されるので、[JavaFX 11]を選択し、[Add Library]ボタンを押します。

Setting_Library-2.png

トラブルシューティング

NetBeans 8.2/JDK 8までのJavaFXプロジェクトがNetBeans 10/JDK 11で実行できない

JDK 11からJavaFXが分離したことに伴い、これまでのJavaFXプロジェクトの設定にJavaFXへのクラスパスを追加してみたところ、ビルドはできるが実行できないという状態になりました。

D:\Hello\nbproject\jfx-impl.xml:3550: The following error occurred while executing this line:
D:\Hello\nbproject\jfx-impl.xml:3578: The following error occurred while executing this line:
D:\Hello\nbproject\jfx-impl.xml:3597: The following error occurred while executing this line:
D:\Hello\nbproject\jfx-impl.xml:524: Error:
JavaFX deployment library not found in active JDK.
Please check that the JDK is correctly installed and its version is at least 7u4 on Mac or 7u6 on other systems.
BUILD FAILED (total time: 1 second)

JDKの中にJavaFXライブラリが含まれていることを前提としたビルド定義になっているものと推察します。
そこで、ビルド定義(プロジェクト定義)については既存のものを破棄し、新たに作り直します。

JavaFXアプリケーションが「エラー: JavaFXランタイム・コンポーネントが不足しており、このアプリケーションの実行に必要です」で起動しない

Javaアプリケーションでプロジェクトを作成し、JavaFXをライブラリに追加してクラスパス指定してプログラムを実行すると、javaコマンドが次のエラーを吐きます。

エラー: JavaFXランタイム・コンポーネントが不足しており、このアプリケーションの実行に必要です

クリップボードから画像を追加 (サイズの上限: 1 GB)