2012-06-17

Fedora 17 で JavaFX プログラミング

Fedora では、Java 7 を標準で利用できるようになったので、これで JavaFX のプログラミングができると楽しみにしていましたが、javafx のような RPM パッケージは、RPM Fusion からも出ている様子がありません。
Oracle JavaFX のサイトを見てみると JavaFX 2.2 のベータ版が、(いつの間にか)Linux x86_64 向けにも公開されていましたので、思い切って RPM のパッケージに頼らず、JavaFX に対応している最新の NetBeans IDE 上で、Linux 上でも JavaFX が使えるかどうか試してみることにしました。

以下は、試行錯誤した結果を整理したものです。

使用した環境

Fedora 17(x86_64 版)
Java および Eclipse による開発環境はインストール済み
デスクトップ環境は LXDE を使用

用意しておくパッケージ

NetBeans IDE 7.1.2
NetBeans IDE 7.1.2 ダウンロード
IDE の言語:日本語、プラットフォーム:Linux (x86/x64)で、サポートテクノロジー「すべて」のパッケージをダウンロードしてインストールしました。
JavaFX 2.2 build b13, Linux 64-bit (zip)
JavaFX Developer Preview
jdk-7u5-linux-x64.rpm
Java SE Development Kit 7 Downloads
試行錯誤の中で、Oracle の JDK が、Fedora から配布されている OpenJDK とは、少なくともインストールレベルでは衝突しなかったので、JavaFX を使う Java のプラットフォームバージョン用の Java に使ってみました。OpenJDK をそのまま使うこともできます。

NetBeans IDEのインストール

ルート権限で、ダウンロードしたインストーラを実行します。このインストーラを実行するには、Java の実行環境 (JVM) が必要です。
$ su
パスワード:
# sh netbeans-7.1.2-ml-linux.sh
インストーラを構成しています...
システムで JVM を検索しています...
インストールデータを抽出しています...
インストーラウィザードを実行中...

NetBeans IDE と JUnit について、ライセンス契約条件の同意が求められます。

インストール先は /opt 以下にしました。

インストールが開始されます。

無事インストールが終了したら、メニューから「プログラミング」>「NetBeans IDE 7.1.2」を選択して起動してみます。

JavaFX2.2 の展開と NetBeans IDE の設定

あらかじめダウンロードしておいた JavaFX の zip ファイルを展開します。ここでは /opt 以下に展開しています。
なお、必須ではありませんが、前述したように、Oracle のサイトで入手できる JDK の RPM パッケージもインストールしています。
# yum localinstall jdk-7u5-linux-x64.rpm
...
# cd /opt
# unzip /home/bitwalk/ダウンロード/javafx_sdk-2_2_0-beta-b13-linux-x64-13_jun_2012.zip
...
NetBeans IDE を起動して、メニューの「ツール(T)」から「Javaプラットフォーム(I)」を選んで、JavaFX が利用できるプラットフォームを追加します。これはデフォルトのプロットフォームでは JavaFX が利用可能になっていないためです。なお、ここで追加するプラットフォームには、前述の Oracle のサイトから入手した JDK を選択しています。

追加したプラットフォームには、JavaFX のタブが追加されていますので、このタブで、先ほど展開した JavaFX のフォルダーを指定します。

以上で、JavaFX を利用する環境が整いました。

Hello World

NetBeans IDE のメニューの「ファイル(F)」から「新規プロジェクト(W)」を選び、JavaFX のプロジェクトを作ると、(スケルトンとして)HelloWorld を表示するプログラムが自動に生成されます。


実行結果を以下に示しました。

また、FXML のサンプルも試してみました[2]。これを活用すれば、GUI のレイアウトが簡単にできそうです。

欲を言えば Eclipse で JavaFX のプログラミングができれば良いのですが、こういうことが無ければ NetBeans IDE を使うことがないので、この機会に NetBeans IDE の使い方を覚えて、JavaFX のプログラミングを楽しむことにします。


参考サイト

[1] NetBeans 7.1.2 on Fedora 17/16, CentOS/RHEL 6.2/5.7
[2] Getting Started with JavaFX: Using FXML to Create a User Interface