原文: http://javafx.steveonjava.com/javafx-on-raspberry-pi-3-easy-steps/
待望のRasberry Pi用JavaFX開発者プレビューがついに公開されました! Rasberry Piは、小規模の組み込み開発用に、また教育用の低コストコンピュータとして、そしてホビイストのおもちゃとしても素晴らしいプラットフォームです。モデルBはたったの$35で、512MB RAM、700MHz ARMプロセッサ、HDMI、コンポジット、オーディオ、Ethernet、そして2つのUSBポートが付いています。
Rasberry Piでどんなことができるでしょうか?私たちがDevoxx用に制作した、宇宙船が飛び去るアニメーションでカンファレンスのスケジュールを表示するデジタルサイネージが良い例です:
アップデート:もしPi上でのJavaの性能に不安があるなら、fxexperience.comでのRich Bairのポストを読んでみてください:
http://fxexperience.com/2012/12/javafx-on-raspberry-pi/
よしやってみよう、と思ったなら、次の簡単な3ステップでPi上でJavaFXを動かすことができます:
この記事では読者がPiを持っていると想定しています。どこでPiを買えるのか、電源はどうするのか、といった疑問についてはRaspberry Piの公式サイトをチェックすることをお勧めします。
Step 1 – Raspberry PiにLinuxをインストールする
ノート:なぜ浮動小数点にそんなにこだわるかって?ローエンドの組み込みシステム(例えばARM Cortex M0-M3)では、コスト節約のため浮動小数点演算ハードウェアが省略されるからです。幸運にも、Raspberry Piで使われているARMv6チップは真の浮動小数点演算サポートを備えています。
SDカード上にLinuxをセットアップするには、Windows、Mac、LinuxいずれかのデスクトップとSDカードリーダーが必要です。使用すべきディストリビューションは最新のRaspbian Wheezyのhard floatビルドです。これはRaspberry Piダウンロードサイトでの推奨インストールでもあります:
http://www.raspberrypi.org/downloads
イメージを焼き付ける方法はいくつかありますが(詳しくはこちら)、基本的には以下に集約されます:
- Windows: Win32DiskImagerを使う
- Mac: RPi-sd Card Builderを使う
- Linux: ddコマンドを使う
SDカードができあがったら、Raspberry Piを箱から出してSDカードを差し込み、そのへんのモニタかTVに接続してからUSB電源(5V 700mA以上)をつなぎましょう。
注意:順序は重要です!Piの電源を入れる前にHDMIモニタをつながないとコンポジット出力と認識されます。つまり、LEDが点滅しているのに画面がでない場合、Piを再起動(電源を抜き差しする)してみるべきです。
この時点で、Piがブートして設定画面が表示されます。以下のいくつかの項目については設定の変更を検討すべきでしょう:
- CPU/GPUメモリ配分–グラフィックスが重要なアプリをスムースに走らせるために、GPUに少なくとも128MBを与えましょう(JavaFXには重要!)
- ロケール/キーボード/タイムゾーンの変更–デフォルト設定はイギリスです。それ以外の国の方はこの設定を変えないとキーバイドが狂ってイライラすることになるでしょう
- オーバースキャン–もしディスプレイの端に黒い帯があるなら、これをオフにすればフル解像度を使うことができます
- ルートファイルシステムの拡張–全スペースを使うようにオンラインでリサイズできます(デフォルトイメージでのルートパーティションはたった2GB)。実施を強く推奨しますが、大容量カードではかなり時間がかかります
- SSH – ネットワーク経由でPiにアクセスする場合はこれをオンにしてください(これは、暴走したJavaFXプロセスをリブートなしで止める唯一の手段です)
Rasberry Pi用JavaFXの公式ドキュメントでは、設定ファイル (/boot/config.txt) の中の以下の行のコメントを外して、フレームバッファを720pに設定することが推奨されています:
framebuffer_width=1280 framebuffer_height=720
これは厳密には必須ではありませんが、Piが送り出すピクセル数を減らすので、よりよい性能を得ることができます。これを行うなら、ピクセルがアップスケールされないように、Piが必ず720の解像度で動作するようにも設定すべきです。自分がしていることが理解できないなら(そしてディスプレイを無効にしてしまったときのために、リモートログインしたsshターミナルを用意せずに)ディスプレイ設定をいじってはいけません。 HDMIディスプレイモードについてのより詳しい情報はこちらのドキュメントを参照してください。
Step 2 – Java/JavaFX 8をダウンロードしてPiにコピーする
Piがイーサネット経由でネットワークにつながっているなら、直接デバイスにダウンロードできます。そうでなければ、sftp(ssh経由)またはUSBメモリなどを使ってコピーしてください。
ダウンロードできたら、好きな場所で解凍します:
sudo tar -zxvf file_name -C /opt
そして次のようなコマンドをたたいてjavaを実行してみましょう:
sudo /opt/jdk1.8.0/bin/java -version
Step 3 – PiにJavaFXアプリをデプロイして実行する
Pi用のJavaFXアプリ開発の第一歩にぴったりなのは、Scene Builderを使って視覚的に手早くユーザインタフェースを組み立て、Piにデプロイする方法です。実際、私は昨晩Linux Users’ Group of Davis (LUGOD) でこれを実演し、非常に鋭い聴衆のみなさんの助けを借りて、サンプルアプリを素早く組み上げました(途中、聴衆のみなさんからいくつかlinuxコマンドの技を学ぶこともできました)。
この私たちが15分で作ったアプリは、お試し用のサンプルとしてGitHubにポストしておきました:
sudo /opt/jdk1.8.0/bin/java -Djavafx.platform=eglfb \ -cp /opt/jdk1.8.0/jre/lib/jfxrt.jar:LUGODTest.jar lugodtest.LUGODTest
でも、一番印象に残るデモはやはり自分で作ったものです。ぜひ自作のJavaFXアプリを試してみて、それらのアプリへのポインタを下のコメント欄に残してください!