火曜日 2 12, 2013

RICOH & Java Developer Challenge Plus 2012

2013年1月23日にリコー様の学生向けJavaプログラミングコンテスト「Ricoh & Java Developer Challenge Plus 2012」最終選考会が開催され、プレスリリースやレポートが公開されています。今年度の大会では、対象機器を従来の複合機のみからプロジェクターにも拡げ、タブレットやクラウドとも連携した様々な作品が発表されました。

オラクル賞は北見工業大学の「北見工業大学医療画像研究室+」チームが受賞し、トロフィ代わりの社員犬キャンディのぬいぐるみをはじめ、OracleやJavaのロゴ入りグッズ一式が授与されました。発表本番ではトラブルのためプロジェクターへの出力が正常に動作しなかったのですが、JavaFXを採用したことが評価されました。

その他の受賞チームや選考会の様子は以下のサイトをご覧下さい。

  • 2013年1月24日 株式会社リコー ニュースリリース「Javaビジネスアプリの学生プログラミングコンテスト - インタラクティブサイネージを提案した産業技術大学院大学がグランプリ獲得」
  • 2013年1月25日 マイナビニュース「挑戦することに意義がある!」
  • 2013年2月8日 いまじおボットが行く!! Vol.8「最終選考会 潜入レポート2012」
  • 土曜日 12 22, 2012

    Raspberry Pi で JavaFX - かんたん3ステップ

    原文: 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をインストールする

    最新のJava 8リリースはhard floatです。 性能にも優れ、Raspberry Piの推奨Linuxビルドもhard floatなので、これは望ましいことです。softやsoftfpとつくビルドはhard floatのJVMとは非互換ですので避けてください。

    ノート:なぜ浮動小数点にそんなにこだわるかって?ローエンドの組み込みシステム(例えばARM Cortex M0-M3)では、コスト節約のため浮動小数点演算ハードウェアが省略されるからです。 幸運にも、Raspberry Piで使われているARMv6チップは真の浮動小数点演算サポートを備えています。

    SDカード上にLinuxをセットアップするには、Windows、Mac、LinuxいずれかのデスクトップとSDカードリーダーが必要です。使用すべきディストリビューションは最新のRaspbian Wheezyのhard floatビルドです。 これはRaspberry Piダウンロードサイトでの推奨インストールでもあります:

    http://www.raspberrypi.org/downloads

    イメージを焼き付ける方法はいくつかありますが(詳しくはこちら)、基本的には以下に集約されます:

    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互換のJava/JavaFX 8ビルドはこちらからダウンロードできます:

    http://jdk8.java.net/fxarmpreview

    Piがイーサネット経由でネットワークにつながっているなら、直接デバイスにダウンロードできます。そうでなければ、sftp(ssh経由)またはUSBメモリなどを使ってコピーしてください。

    ダウンロードできたら、好きな場所で解凍します:

    sudo tar -zxvf file_name -C /opt

    そして次のようなコマンドをたたいてjavaを実行してみましょう:

    sudo /opt/jdk1.8.0/bin/java -version
    

    Step 3 – PiにJavaFXアプリをデプロイして実行する

    JavaFXデスクトップアプリケーションの大半は、単にjarファイルをコピーしてローカルに実行するだけでPi上でも動きます(ただし、WebView や MediaView に依存するアプリケーションは例外です。これらは現在の開発者プレビュー版では未実装です)。

    Pi用のJavaFXアプリ開発の第一歩にぴったりなのは、Scene Builderを使って視覚的に手早くユーザインタフェースを組み立て、Piにデプロイする方法です。実際、私は昨晩 Linux Users’ Group of Davis (LUGOD) でこれを実演し、非常に鋭い聴衆のみなさんの助けを借りて、サンプルアプリを素早く組み上げました(途中、聴衆のみなさんからいくつかlinuxコマンドの技を学ぶこともできました)。

    この私たちが15分で作ったアプリは、お試し用のサンプルとしてGitHubにポストしておきました:

    Piで動かすには、このソースをお気に入りのIDEで(またはコマンドラインから)ビルドしてjarファイルを作ります。このjarファイルをPiにコピーして、次のようなコマンドで実行するだけです:
    sudo /opt/jdk1.8.0/bin/java -Djavafx.platform=eglfb \
    -cp /opt/jdk1.8.0/jre/lib/jfxrt.jar:LUGODTest.jar lugodtest.LUGODTest
    以下はScene Builderプロジェクトの写真と、実際にLUGODミーティング中にRasberry Piで実行した出力結果です:

    でも、一番印象に残るデモはやはり自分で作ったものです。ぜひ自作のJavaFXアプリを試してみて、それらのアプリへのポインタを下のコメント欄に残してください!

    水曜日 10 24, 2012

    JavaFX EnsembleがMac App Storeに

    原文:JavaFX Ensemble in the Mac App Store // JavaFX News, Demos and Insight // FX Experience

    JavaFXチームのScott Kovatchが、山のような法務手続きをくぐり抜け、ついに最初のJavaFXアプリケーション(みなさんよくご存知のものです)をMac App Storeに並べることに成功しました!James Goslingに熱烈な支持をいただけたのは特に最高でした。多くのみなさんがご存知のように、Ensembleはすべてのjavadocをはじめ、アニメーションから3Dバインディングのコントロールまで、100以上の実例を含むサンプル集アプリです。また、このアプリは今後のJavaFXの進展にあわせて増強され続けていきます。最初のリリースはJavaFX 2.0でしたが、チームはその後もずっとコンテンツを追加し続けて来ました(Debbie、そしてプラハやチームのみんなに感謝!)。

    Mac App Storeへの登録はなかなかの大仕事でした。まず今年になって、ネイティブアプリバンドル生成のサポートを追加しました。これは、JavaFXアプリにJREを同梱し、MacOS Xなら.appと.dmg、Windowsなら.exeと.msi、Linuxなら.debや.rpmといった、プラットフォーム固有のアプリバンドルを生成するものです。こういったアプリバンドルは、AppletやWebStartのようなリモートコード実行に依存していないので本質的に安全です。また、エンドユーザにとっては完全に「普通の」アプリになります。これはApp Storeにアプリを登録するためにも必要なことでした。そして、これらのアプリバンドルにはJavaが同梱されているため、事前にJavaをインストールしておく必要がありません。どのバージョンのJavaがインストールされているかとか、特定のバージョンをインストールさせるとかいったことに頭を悩ませる必要はもうありません。単にそのまま実行できるのです。

    さあ、みなさんもぜひやってみてください。JavaFXでデスクトップアプリケーションを作り、Mac App Storeで配布してみましょう。きっと楽しいですよ! ;-)

    金曜日 10 12, 2012

    JavaFX Developer Preview for ARM

    ARM版Linux用のJavaFX (JDK 7) Developer Previewが公開されました。デモやサンプル、自作したJavaFXアプリを実行し、フィードバックをお寄せ下さい。

    対応しているデバイスは、BeagleBoard xM (Rev. C)です。タッチスクリーンでのタッチ操作もサポートし、3M M2256PWやChalkboard Electronicsの1024x600 LCDなどでの動作が確認されています。その他のシステム要件とセットアップ方法はドキュメントをご覧下さい。

    XサーバーやX11ライブラリを使用せず、EGL/OpenGL ES 2.0を使用してフレームバッファにレンダリングできるため、対応したLinuxディストリビューションが必要ですが、ドキュメントではAngstrom 2011.03ディストリビューションの入手方法も紹介されています。提供されているサンプルでは、Stopwatch(ストップウォッチ)、BouncingBalls(ボールのバウンド)、Calculator(計算機)、BrickBreaker(ブロック崩し)などが動作確認されています。

    JavaOneでの下記セッションや展示会場では、Raspberry PiやPanda Boardを使ったデモもありました。

    月曜日 8 27, 2012

    JavaFX 2.2の新機能

    今週、OracleはJavaFXの重要なアップデートであるJavaFX 2.2をリリースしました:
    • 2.2ではついにWindows (32-bitおよび64-bit)、Mac OS X (64-bit)、Linux (32-bitおよび64-bit)のすべてでJavaFXが利用可能になりました。これで大半の開発者はお気に入りの開発環境でJavaFXアプリケーションを作ったりテストしたりすることができます。より詳しくはJavaFX認定システムコンフィギュレーションをご覧ください。
    • JavaFX 2.2のランタイムはOracleのJava SE 7u6実装に含まれるようになりました。2011年12月以降、この2つの製品はある程度統合が進められてきましたが、今回1つに統合されたインストーラが導入され、JDKとJREの両方でJava SEライブラリと一緒にJavaFXライブラリもインストールされます。これにより使い勝手がさらに改善され、アプリケーション開発者にとっては、JavaFXアプリケーションを実行できるコンピュータの数がJava SEとすぐに同程度になることが確信できるでしょう。
    • Java SE 6ユーザのためにJavaFX 2のスタンドアローン実装も依然利用可能ですが、これはWindows版のみになります。またこのスタンドアローン版は、Java SE 6がEnd of Life (EOL)になる2013年2月以後はサポートされません。以前にもご説明したように、EOL以降は商用のJava SEサポートにサインアップしない限りJava SE 6ユーザにはバグフィックスやセキュリティフィックスは提供されません。その場合はただちにJava SE 7への移行を計画してください。
    上記の重要な変更点に加え、JavaFX 2.2ではいくつかの新機能も導入されました:
    • JavaFXアプリケーションは自己完結型アプリケーションパッケージとして再配布できるようになりました。このプラットフォーム固有のパッケージには、アプリケーションの全リソースとJavaおよびJavaFXランタイムが含まれます。そしてネイティブインストーラパッケージとして配布されることで、各OSのネイティブアプリケーションと同じインストール/起動体験を提供します。大きなメリットは、既存の古いJava SE実装のデプロイに一切影響を与えることなく、Java SE 7をバンドルしたJavaFX 2.2アプリケーションをデプロイできることです。
    • タッチ操作可能な機器のためのマルチタッチサポート。これは現段階では主にデスクトップクラスのタッチスクリーンやタッチパッド向けですが、将来的にはARMベースのチップ上にJava SE Embeddedが搭載されているさまざまな組み込み機器に洗練されたUIを導入することを可能にします。例えばキオスク端末、テレメトリシステム、ヘルスケア機器、多機能プリンタ、監視システムなどです。これらは、多くのアプリケーション開発者にはまだあまり注目されていないJavaアプリケーションの市場セグメントですが、近年活況を呈しつつあります。
    • JavaFX Canvas APIは、HTML5のCanvas風の操作を提供する2D描画キャンバスです。HTML5に慣れた開発者は間違いなくこのJavaFX Canvas APIを気に入るでしょう。しかし、これはHTML5のCanvas APIの複製ではないことには注意してください。このAPIは、AWTやSVGのような背景を持つ開発者にも歓迎されるでしょう。Ensembleサンプルアプリケーションの"NEW!"セクションでは、"Fireworks"というCanvasのデモを実行することができます。また、こちらのビデオで別のCanvasの使用例の開発の様子を見ることもできます。
    • JavaFX 2.2では、JavaFXのイメージオブジェクトへのピクセルの読み出しや書き込みの機能が導入されました。Ensembleの"NEW!"セクションの中に"Image Operator"というサンプルがあります。
    • ColorPickerPaginationという2つの新しいUIコントロールが追加されました。これらもEnsembleの"NEW!"セクションで試すことができます。また、WebViewコントロールは閲覧履歴を管理することができるようになりました。FXMLの拡張を利用したカスタムコントロールの作り方も文書化しました。
    • HTTPライブストリーミングのサポートはJavaFXのメディアサポートを強化する機能です。ダウンロード可能なプレイリストファイルでの指定とネットワークの状態に応じて、メディアプレーヤが動画/音声を代替ストリームに切り替えることができるようになりました。
    • SwingアプリケーションをJavaFXで実装し直すSwing開発者や、SWTアプリケーションにJavaFXコンテンツを統合するSWT開発者の役に立つ追加情報も用意されています。また、JavaFXアプリケーション開発のベストプラクティスもいくつか文書化しました。
    • 最後に重要な点として、JavaFXの開発者は、アプリケーションのUIを視覚的にレイアウトし、アプリケーションのロジックとUIをきれいに分離するFXMLを生成できる、新しいJavaFX Scene Builder 1.0を活用できるようになりました。このScene BuilderはJavaFXで書かれた本格的なアプリケーションのすばらしい実例でもあります。現在、Windows版とMax OS X版が用意されており、NetBeans 7.2以降とシームレスに連携できます(その他のJava IDEと一緒に使うことも可能です)。
    要約すると、JavaFX 2.2は単なるLinuxサポートの追加だけにとどまらない大きなリリースと言えます。JavaFXをJava SEに緊密に統合していくというOracleのビジョンを実現するとともに、クロスプラットフォームサポートへの取り組みと、計画通りの進捗を証明するものなのです。

    火曜日 5 22, 2012

    Mac OS X用のOracle JDKとJavaFX SDKを正式リリース

    Oracle JDK 7およびJava FX 2.1 SDKのMac OS X版が公開されました。このリリースは、Oracle JavaのMacへの展開における重要なマイルストーンです。今後、Oracle JDK 7とJavaFX 2.1(そして後続バージョン)のすべてのリリースで、Linux、WindowsやSolaris版と同時にMac版も公開されます。

    OS X用のJDKとJavaFXはどこからダウンロードできますか?

    java.oracle.comからどうぞ。このJDKダウンロードにはJava FX SDKも含まれています。

    このリリースには何が含まれていますか?

    Java SE 7の完全互換実装、JDKの開発ツールの大部分と完全なJavaFX 2.1 SDKです。保守やデバッグ用のツールや、JavaプラグインやWeb Startといったデプロイメント技術の一部は未提供ですが、後続のリリースで追加される予定です。詳細については、JDKのリリースノートJavaFXのリリースノートをご覧ください。

    OracleはMac上のJDK 7でのNetBeansの使用をサポートしますか?

    はい!NetBeans 7.1.2がJDK Update 4と同時にリリースされ、これにはMac用Oracle JDKのフルサポートが含まれています。こちらの発表をご覧ください。ダウンロードはこちら

    このリリースに既知の問題点はありますか?

    Mac OS Xへの対応は私たちにとってかなりの大仕事でした。また、新プラットフォームの追加はずいぶん久しぶりのことです。今回のリリースは"1.0"と考えられるべきで、既知の問題点も多く含まれています。詳しくはリリースノート(JDK, JavaFX)を参照してください。

    問題点を見つけた場合、どうすればよいですか?

    まず、それが既知の問題でないかリリースノートを確認してください。次に、適切なメーリングリストwebフォーラムで検証や解決への助力を求めることができます。その後でバグ管理システムにレポートを登録してください。

    OS X版のソースコードは公開されていますか?

    はい!JDKのすべてのコードは、OpenJDKコミュニティJDK 7 Updatesプロジェクト内にあります。JavaFXは、OpenJFXプロジェクトで部分的にオープンソース化されており、Oracleは残りの部分についてもオープンソース化に向けて作業中です。

    どのAppleハードウェア、OS Xのバージョンがサポートされますか?

    OracleのJDKとJavaFXリリースは、64ビット対応のIntelベースMac上のOS X Lionをサポートしています。この実装は64ビットのみなので、64ビットのOSが必須なことに特に気をつけてください。

    OS Xの古いバージョンでもOracle JDKを使えますか?

    いいえ、難しそうです。根本的な問題は、Oracle JDKが、AppleがLionで導入したいくつかのAPIを必要としていることです。この新しいAPIで導入された機能は、古いOS Xバージョンにもある程度は存在しましたが、正式なAPIではありませんでした。

    32ビットJVMや、古いPPCベースのMacのサポートが必要な場合、どうすればよいでしょう?

    OpenJDKをベースとして、他のコンフィグレーション向けにJDK 7をビルドする、コミュニティベースの取り組みが存在します。お好みの検索エンジンで簡単に見つかるでしょう。こういった取り組みには拍手喝采です! :-)

    Mac OS X用Oracle JDKおよびJavaFXのための商用サポートはありますか?

    これらはOracleの標準リリースと認められるので、Java SE Supportプログラムの対象となります。ただし、Macのサポートは開発のみです。ビジネスクリティカルなサーバーサイドアプリケーションがMac上で運用されることは想定していません。

    今後のロードマップについて教えてください

    Mac版のOracle JDKとJavaFXの今後のリリースは、毎年4-6リリースという通常のJDKリリース計画に従います。次の重要なマイルストーンはJDK 7 Update 6で、ここでJavaプラグインやWeb Startのサポートを追加する予定です。早期アクセスビルドはこちらです。もちろん、JDK 8でもMac OS Xはサポートされます。

    金曜日 4 27, 2012

    5つのJavaアップデートリリース

    本日、OracleのJavaチームは、Java SE、Java FX、Java SE for Embeddedのアップデートリリースを公開しました。

    Java SE

    Java SE 7 Update 4 

    • これはOracleが初めてMac OS X用に提供するJDKおよびJavaFX SDKです。(JavaFX SDKを含む)このJDKは、Oracle Technology Networkのダウンロードページから入手できます。
    • Oracleは、JRockitとHotSpot JVMそれぞれのベストな機能を活かすため統合を進めてきました。新しいJVM(Java HotSpot Virtual Machine, version 23)は、JRockit JVMの機能を統合しています。JRockit JVMの持つ付加価値機能のいくつかがHotpSpot JVMに再実装されています。
    • Java SE 7 Update 4では、次世代のガベージコレクションアルゴリズムであるGarbage First(G1)が正式サポートされます。
    • Java SE 7 Update 4は、Java.comでデフォルトバージョンとして提供されるJava 7 JREの、最初のエンドユーザ向けリリースです。最新の情報についてはHenrik Stahlのブログもご覧ください。
    • 詳細についてはJava SE 7 Update 4のリリースノートを参照してください。
    • ダウンロードはこちら

    Java SE 6 Update 32

    Java SE 6u32は、Olsonタイムゾーンデータのバージョン2011lと、いくつかのバグ修正を含んだものです。より詳しい情報はJava SE 6 Update 32のリリースノートをご覧ください。ダウンロードはこちら

    Java FX

    JavaFX 2.1リリースは、WindowsとMac OS Xプラットフォーム用のJavaFX Software Development Kit (SDK)を含んでいます。JavaFX SDKは、JavaFXアプリケーションの開発に必要なツールやテクノロジを提供します。以下の新機能が含まれています:
    • H.264/AVCビデオとAdvanced Audio Coding (AAC)オーディオを格納した、MPEG-4マルチメディアコンテナ形式のデジタルメディアの再生サポート。
    • WebVeiwで、JavaScriptからのJavaメソッド呼び出しを新たにサポート。HTML/JavaScriptを表示したとき、特定の処理をJavaに委ねるため(WebView内の)JavaScriptからJava APIを呼び出しが可能に。
    • JavaFX 2.1リリースでは、WindowsスタイルのLCD用サブピクセルレンダリング機能が追加されています。Windows上ではデフォルトでJavaFXのすべてのUIコントロールでLCD用テキストがオンになっており、WebView(Webコンテンツレンダリング用のWebkitベースのノード)でも同様です。新しいAPIを使えば、シーングラフの低レベルテキストノードでも任意にLCD用テキストを使うことができます。
    • JavaFX 2.1で追加されたユーザインタフェース: コンボボックス、スタックされたチャート、アプリケーション全体用のメニューバー
    • JavaFX Scene Builder 1.0 Early Access - JavaFXプラットフォーム用のビジュアルレイアウトツール。JavaFX Scene Builderでは、シンプルにオブジェクトをドラッグして配置することでUI画面を設計できます。
    • より詳しい情報については、JavaFX 2.1のリリースノートをご覧ください。
    • ダウンロードはこちら

    Java SE for Embedded

    Java SE for Embedded 7 Update 4 & Java SE for Embedded 6 Update 32

    組み込みデバイス向けのJava Standard Edition (Java SE)です。ネットワークベースのデバイスには理想的な、セキュアで最適化された実行環境です。両リリースともいくつかのバグ修正を含んだものです。
    ダウンロードはこちら

    金曜日 12 16, 2011

    JavaFX 2.0.2リリース

    JavaFX 2.0.2がJava SE 7u2と同時にリリースされました!
    ロードマップ通り、2.0.2からJavaFX SDKはJavaSEへ同梱されています。もちろんJavaFX SDK 2.0.2単体でも提供されています。

    その他の主な変更としては、SWTとの相互連携、再配布権の整備JavaFX API用のDocletツールなどのアップデートが含まれています。ドキュメントもアップデートされているので公式ブログをチェックしてみて下さい。

    Download
    Release Note


    【参考リンク】

    New Docs with JavaFX 2.0.2 (The Java Tutorials' Weblog)
    JavaFX 2.0.2 Released (FX Experience)

    火曜日 7 05, 2011

    JavaFX Script v.s. JavaFX 2.0

    先日、JavaFX 2.0 β版がリリースされましたが、オラクルのエンジニアJim CornerがJavaFX ScriptからJavaFX 2.0へマニュアルでプログラムを変換しておもしろい比較をしています。

    対象プログラムにはJavaFX: Developing Rich Internet Applicationsの中から、JavaFX 1.1 Scriptで作った数独プログラムのUI部分を選んで採用してます。Java FX 2.0への変換は、単純に各fxファイルを対応するjavaファイルへの手動での書き換えを行いました。各プログラム毎の行数や文字数の比較結果は次表になります。

    JavaFX Script source file

    Number of Lines

    Number of Character

    JavaFX 2.0 Java source file

    Number of Lines

    Number of Characters




    ArrowKey.java

    6

    72

    Board.fx

    221

    6831

    Board.java

    205

    6508

    BoardNode.fx

    446

    16054

    BoardNode.java

    723

    29356

    ChooseNumberNode.fx

    168

    5267

    ChooseNumberNode.java

    302

    10235

    CloseButtonNode.fx

    115

    3408

    CloseButton.java

    99

    2883




    ParentWithKeyTraversal.java

    111

    3276




    FunctionPtr.java

    6

    80




    Globals.java

    20

    554

    Grouping.fx

    8

    140




    HowToPlayNode.fx

    121

    3632

    HowToPlayNode.java

    136

    4849

    IconButtonNode.fx

    196

    5748

    IconButtonNode.java

    183

    5865

    Main.fx

    98

    3466

    Main.java

    64

    2118

    SliderNode.fx

    288

    10349

    SliderNode.java

    350

    13048

    Space.fx

    78

    1696

    Space.java

    106

    2095

    SpaceNode.fx

    227

    6703

    SpaceNode.java

    220

    6861

    TraversalHelper.fx

    111

    3095



    Total

    2,077

    79,127


    2531

    87,800



    予想通り、JavaFX 2.0の方が行数が長くなり、22%程度増えた結果となっています。一方、文字数に関しては行数ほどの差がありません。つまり、一行あたりの文字数という意味では、JavaFX 2.0は少ないという事が言えます。また、JavaFX Scriptの方は宣言的定義、所謂オブジェクトリテラルがどうしても多くなるため、空白スペースが多くなるという性質も起因しているようです。

    次にメモリ消費量の比較です。Windows Vista上のタスクマネージャで目視でRAMサイズを計測したところ、JavaFX Scriptは起動直後から90MB、JavaFX 2.0では55MBで推移したとのことです。JavaFX Scriptの場合、ランタイムシステムに加えてスクリプトパーサが必要になるためフットプリントが大きかったのかもしれません。

    最後に、bindingの数の比較を行っています。驚くことに、JavaFX Scriptでは58個もあったbindが、JavaFX APIでは2個に激減してしまいました。分析によると Java FX Scriptでは、気軽にbindを利用して変数束縛を多用しがちです。しかし、実際のところ本当にbind機能を必要とするケースは一部であり、数独プログラムについてはメソッド呼び出しの順番を整理するだけで十分な部分がほとんどであったようです。

    JavaFX ScriptからJavaFX 2.0へ変換するMigration Toolの開発も予定されていますが、不要なbindがどれくらいあるかなんて事は、手で変換して初めて分かる面白い検証ですね!

    火曜日 6 07, 2011

    JavaFX 2.0 のチャート


    [Read More]

    木曜日 6 02, 2011

    JavaFX in JIRAがパブリックに

    JavaFXの開発状況が、Kenaiプロジェクトのバグ管理システムで、
    Bronzeパートナー、つまり開発者なら誰でも閲覧できるようになりました!
    http://javafx-jira.kenai.com/

    金曜日 5 27, 2011

    JavaFX 2.0 β版リリース!

    JavaFX 2.0のPublic Beta版が予定通りリリースされました!スタンドアロンで利用するためのSDKと、プラグインを使ってNetBeans IDE 7.0上での開発が可能になっています。
     ドキュメントも整備が進んでいて、これまでよりは詳細な内部アーキテクチャが分かってきました。また、JRubyを使ったプログラムの作り方や、Swingコンポーネント上でJavaFXアプリケーションを動かす方法が示されています。


    【参考リンク】 
    JavaFX.com
    JavaFX Beta Documentation
    OTN
    JavaFX Forum
    「Java FX 2.0 による次世代アプリケーション開発」OTNセミナーオンデマンド (日本語)
    「NetBeans 7.0のJavaFX 2.0 Betaプラグインが公開されました」

    月曜日 5 09, 2011

    生まれ変わったJavaFX 2.0


    [Read More]
    About

    日本オラクルのエンベデッドJavaチームから、最新情報をお送りしていきます。

    Search

    Archives
    « 9月 2015
      
    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