コマンドラインから使う JavaFX SDK

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 を開いてみてください。
JavaFX Documentation
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
アプレットもブラウザで開けばいいですね。
JavaFX
普通にスタンドアロンのアプリケーションで実行するには javafx コマンドを使って、-cp で jar を指定し、メインクラスを指定します。
% javafx -cp /tmp/dist/DisplayShelf.jar displayshelf.Main
のようにすれば実行できます。
JavaFX

Comments:

Post a Comment:
Comments are closed for this entry.
About

NetBeans Globalization

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today