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