Howto

JavaFX(JDK 8 Early Access Releases)をArmadillo-840 液晶モデルで試す

JDK 8 Early Access Releaseに含まれるJREを使用して、JavaFXサンプルアプリケーションを動作させる手順を紹介します。

必要機材

  • Armadillo-840 液晶モデル
  • SD/SDHCカード(300MB以上の空き容量があるもの)

JDKとJavaFXサンプルのダウンロード

JDK 8 Early Access Releaseは、下記リンクからダウンロードすることができます。

こちらから、以下2つのファイルをダウンロードしてください。

  • JDK (Platforms: Linux ARMv6/7 VFP, HardFP ABI, 32-bit, tar.gz)※1
  • JavaFX Demos and Samples (Linux, zip)

※1 JDKをダウンロードするには、License Agreementへの同意が必要です。

SDカードの準備

ダウンロードしたファイルを展開し、SDカードに書き込みます。

JDKからは、jdk1.8.0ディレクトリ下に複数のディレクトリとファイルが展開されます。必要なのは「jre」ディレクトリ及びその下にあるファイル群ですので、jreディレクトリをSDカードのルートディレクトリにコピーしてください。

JavaFX Demos and Samplesからは、srcディレクトリと複数のファイルが展開されます。本HowtoではJavaFXサンプル「Ensemble8」を使用しますので、Ensemble8.jarファイルをSDカードのルートディレクトリにコピーしてください。

両圧縮ファイルともWindows用ツールで展開することが可能ですが、下記ではATDEで展開してSDに書き込む例を示します。 (SDカードは/media/sdにマウントされているものとしていますので、ご使用環境に合わせて読み替えてください)

atmark@atde5:~$ ls
javafx_samples-8_0_0-fcs-b132-linux-03_mar_2014.zip
jdk-8-fcs-b132-linux-arm-vfp-hflt-03_mar_2014.tar.gz
atmark@atde5:~$ tar zxvf jdk-8-fcs-b132-linux-arm-vfp-hflt-03_mar_2014.tar.gz
   :
jdk1.8.0/src.zip
atmark@atde5:~$ unzip javafx_samples-8_0_0-fcs-b132-linux-03_mar_2014.zip
   :
  inflating: javafx-samples-8.0.0/src/Modena/src/main/resources/modena/windows8-window-frame.png
atmark@atde5:~$ ls
javafx-samples-8.0.0
javafx_samples-8_0_0-fcs-b132-linux-03_mar_2014.zip
jdk-8-fcs-b132-linux-arm-vfp-hflt-03_mar_2014.tar.gz
jdk1.8.0
atmark@atde5:~$ cp -a jdk1.8.0/jre javafx-samples-8.0.0/Ensemble8.jar /media/sd
atmark@atde5:~$ umount /media/sd
jreディレクトリのコピー中に
「cp: シンボリックリンク `/media/sd/jre/lib/arm/client/libjsig.so' を作成できません: 許可されていない操作です」
といったメッセージが表示されることがあります。これは、当該ファイルがシンボリックリンクであるため、FATフォーマットのSDカードに書き込めなかったことを示すエラーメッセージです。本Howtoで使用するサンプルには不要なファイルであるため問題はありませんが、シンボリックリンクを正しく扱いたい場合はSDカードをext3などでフォーマットしてください。

Armadillo-840へのイメージ書き込み

Java 8とJavaFXをArmadillo-840 液晶モデルで使用するためのカーネル・ユーザーランドイメージを、下記リンクからダウンロードしてください。

ダウンロードしたカーネル・ユーザランドイメージを、Armadillo-840本体のフラッシュに書き込んでください。(書き込み方法については、マニュアルを参照してください)

※2 本カーネルイメージは、linux v3.4-at6ソースから本コンフィグを使用してビルドしたものです。CONFIG_ARMADILLO840_PRIMARY_FB_LCDC0=y及びCONFIG_TOUCHSCREEN_ST1232_SINGLETOUCH=yが有効になっています。

※3 本ユーザーランドイメージは、Atmark Dist v20140131ソースに本パッチを当て、本コンフィグを使用してビルドしたものです。udevがv175にアップグレードされており、Qt 5を含めないようにしています。

Armadillo-840の起動とJavaFXサンプルの実行

Armadillo-840のSDスロットに準備したSDカードを挿入し、フラッシュ上のカーネル・ユーザランドを使用して起動するよう設定してから、電源を投入してください。

ログインプロンプトが表示されたら、rootユーザーでログインします。そしてSDカードをマウントし、JavaFXサンプルEnsemble8を起動します。

armadillo840-0 login: root
Password:
[root@armadillo840-0 (ttySC2) ~]# mount /dev/mmcblk0p1 /mnt
[root@armadillo840-0 (ttySC2) ~]# /mnt/jre/bin/java -Djavafx.platform=eglfb -cp /mnt/Ensemble8.jar ensemble.EnsembleApp

Ensemble8が起動し、液晶画面に表示されます。本サンプルアプリでは、タッチパネルを用いてJavaFXのさまざまな機能を直接確認することができます。

Java 8 Early Access版JDKと正式リリース版EJDKの違いについて

本Howtoで紹介しているJava 8は、標準のJDK(Java Development Kit) Early Access版に含まれるものです。旧来のJava SEにも存在したEmbedded版ではありません。このため、VM(Virtual Machine)を含むJRE(Java Runtime Environment)のサイズは100MBを超える大きなものになっています。

Oracle社からJava 8正式リリース後は、Embedded向けとしてEJDKが提供される予定です。EJDKは必要な機能だけを持つ極小型カスタムJREを生成する機能を持ち、このEJREでのサイズは最小10~20MB程度に抑えられるとされています。

参考情報

JavaFX Demos and Samplesのsrcディレクトリ下には、各サンプルアプリケーションのソースファイルが収録されています。Java 8及びJavaFXの開発環境は複数存在しますが、ここで用意されているソースはNetBeans IDEを用いてそのままビルドすることができます。