JavaFX は NetBeans などの IDE で作業をするのが一般的で楽ですがコマンド行からもコンパイルやパッケージング、実行ができるんですね。以前 NetBeans の関係で調べていたことがありここに簡単にメモしておきます。
JavaFX のツール群
JavaFX SDK で提供されている主なツールは以下のようになっています。javafx は JDK でいうと java, javafxc は
javac, javafxdoc は javadoc というように JDK とだいたい同じです。
javafx
|
JavaFX アプリケーションの実行
|
javafxc
|
JavaFX ファイルのコンパイル
|
javafxdoc
|
JavaFX のソースから HTML 形式でドキュメントを生成
|
javafxpackager
|
JavaFX アプリケーションを配備用にパッケージング
アプレット用 HTML, Web Start 用 jnlp の生成
|
JavaFX SDK のインストール場所
コマンドは JavaFX SDK をインストールしている場所の bin/ ディレクトリ以下にあります。NetBeans のプラグイン経由でインストールした場合はユーザーディレクトリ以下か、NetBeans のインストールディレクトリの javafx2 クラスタ以下にありますので探してみてください。
プラットフォーム
|
SDK の場所(デフォルトのインストールオプションの場合)
|
Mac OS X
|
SDK をインストールした場合:
- /Library/Frameworks/JavaFX.framework/Versions/Current
(/usr/bin にリンクされます)
NetBeans からプラグインをインストールした場合:
- <ユーザーディレクトリ>/javafx-sdk
- <NetBeans インストールディレクトリ>/javafx2/javafx-sdk
|
Windows
|
SDK をインストールした場合:
- C:\Program Files\JavaFX\javafx-sdk
NetBeans からプラグインをインストールした場合:
- C:\Users\<ユーザー>\.netbeans\6.5\javafx-sdk
- C:\Program Files\NetBeans 6.5\javafx2/javafx-sdk
|
ドキュメントは docs/ 以下にあります。ここでは簡単に説明するだけですので詳細は SDK
に付いている各ツールのドキュメントを参照してください。
javafxc - JavaFX ソースをコンパイル
まずコンパイルしてみましょう。javafxc コマンドにソースファイルを指定します。javac コマンドと同じですね。
% javafxc javafxapplication/Main.fx
例えば、パッケージ javafxapplication に Main.fx があるとします。
% ls javafxapplication/
Main.fx
以下のようにファイルを指定します。
% javafxc javafxapplication/Main.fx
クラスファイルは何も指定しないとソースファイルと同じ場所に作成されます。
% ls javafxapplication/
Main$Intf.class Main.fx Main.class
%
javafx - JavaFX アプリケーションを実行
次に生成されたクラスを実行してみます。javafx コマンドは基本的にはクラスパスなどの設定を行なった後に java
コマンドをキックしています。
先ほどコンパイルしたディレクトリから Main クラスを指定して実行します。別のディレクトリでは -cp オプションを付けてクラスパスを指定します。
% javafx javafxapplication.Main
jar ファイルの実行は javafxpackager で説明します。
javafxdoc - JavaFX ドキュメントを生成
javafxdoc を使ってドキュメントを作成してみます。この例では出力先のディレクトリに /tmp/javafxdoc を、ソースのあるディレクトリに DisplayShelf/src、そしてパッケージを指定しています。
% javafxdoc -d /tmp/javafxdoc -sourcepath DisplayShelf/src displayshelf
以下のようなドキュメントが生成されます。index.html を開いてみてください。
javafxpackager - 配備用にアプリケーションをパッケージング
javafxpackager はソースをコンパイルするだけでなく、特定のプロファイルにもとづいてアプリケーションの jar やアプレット用の HTML ファイル、Web Start 用の jnlp ファイルを作成してくれます。現在サポートされているプロファイルは desktop か mobile です。JavaFX 1.0.1 までは -encoding オプションが用意されていなかったため、javafxpackager をそのまま使っている NetBeans ではエンコーディングの指定ができませんでした。以下は簡単な例です。
% javafxpackager \
-src src \
-d /tmp/dist \
-appName DisplayShelf \
-appVendor 'JavaFX Samples Team' \
-appWidth 600 \
-appHeight 300 \
-appClass displayshelf.Main \
-encoding UTF-8 \
-p desktop \
-draggable
ここで使っているオプションをあげておきます。
オプション
|
説明
|
-src
-sourcepath
|
ソースのあるディレクトリのトップを指定します。
src/<パッケージ名>/... の構成では src からを指定します。
|
-d
-destination
|
出力先を指定します。デフォルトは実行したディレクトリ以下の ./dist になります。
|
-appName
|
デフォルトのアプリケーション名を指定します。
|
-appVendor
|
デフォルトのアプリケーションベンダー名を指定します。 |
-appWidth
|
アプレットの幅を指定します。 デフォルトは 200 ピクセルです。
|
-appHeight
|
アプレットの高さを指定します。 デフォルトは 200 ピクセルです。 |
-appClass
|
main を含むクラスを指定します。この引数は必須です。
|
-encoding
|
ソースファイルのエンコーディングを指定します。
指定しない場合は実行している環境のエンコーディングになります。
|
-p
-profile
|
JavaFX のプラットフォームを指定します。
現在サポートされているプロファイルは desktop か mobile です。指定しない場合は desktop になります。
|
-draggable
|
ブラウザからドラッグ可能なアプリケーションにします。
|
パッケージングされたアプリケーションを実行
プロファイルを desktop で javafxpackager を実行すると次のファイルが生成されます。<アプリケーション名>
には -appName オプションで指定した名前が入ります。
| <アプリケーション名>.jar |
アプリケーションの jar ファイル
|
| <アプリケーション名>.html |
アプレット用 HTML ファイル
|
| <アプリケーション名>_browser.jnlp |
ブラウザ JNLP ファイル
|
| <アプリケーション名>.jnlp |
Java Web Start JNLP ファイル
|
Java Web Start で起動するには jnlp ファイルをブラウザで開くか javaws を使って実行できますね。
% javaws /tmp/dist/DisplayShelf.jnlp

アプレットもブラウザで開けばいいですね。

普通にスタンドアロンのアプリケーションで実行するには javafx コマンドを使って、-cp で jar を指定し、メインクラスを指定します。
% javafx -cp /tmp/dist/DisplayShelf.jar displayshelf.Main
のようにすれば実行できます。