seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

JNLPのJava AppletをChromeでも使うお作法 一式メモ

JDK1.6u10以降の新しいアプレットでは、

  • ファイルの読み書き、クリップボードへのアクセス、ローカルマシンのファイルのアクセスが可能になっている
  • deployJava.jsを使うことで、JNLPアプレットIEFirefox, Chrome*1などブラウザを問わず表示可能
    • object, applet, embedタグに悩む必要なくなる

といった利点がある。


公式ドキュメント:
JavaTM Web アプリケーション 配備アドバイス JavaSE 6u10 用

JNLPアプレットの作り方、要点

  1. Java Web Startと同じ要領でソースコードを書く
    1. javaws.jarをクラスパスを通してコンパイルすること
    2. javaws.jarはランタイム側(実行時)には入っているので配布する必要はない.
    3. もちろん、JNLP APIは必要なければ無理に使う必要はない.
  2. JNLPファイルを作成する
    1. applet-descを指定する
    2. 必須属性は不足していると、一見、それと分からぬ不可解なエラーになるので注意
    3. 必要なライブラリ(jar)をJNLPのresourceタグで指定可能
    4. インデックス化すると遅延ロードも可能になる(らしい).
  3. HTMLファイルは、deployJava.jsを使う
    1. deployJava.jsでJNLPファイルを指定する.
    2. 必須属性が不足していると、エラーもなく何も表示されなかったりするので注意
    3. IE, Firefox, Chromeなどでアプレットの表示タグが異なるが、これらを吸収してくれている。
    4. appletタグは非推奨なのでHTMLパリデータで警告が発生するが、deployJava.jsを使えば、これらのタグは出てこないのでパリデータが静かになる

*1:Chromeアプレットを表示させるには、objectやembedではなく、appletタグを使う必要がある。