JBKプラグインが提供するダウンロード通知機能を説明します。
JBKプラグインはJARファイルのダウンロード時の状態を通知するインタフェースを提供します。このインタフェースを実装したクラスを作成し、jbkplugin.propertiesで作成したクラスを指定することにより、JARファイルのダウンロード状態を表示するプログレスバーなどを組み込むことができます。
ダウンロード通知機能インタフェース
JBKプラグインのダウンロード通知機能のAPIは次のとおりです。
インタフェース名:
com.fujitsu.jbk.plugin.browser.PluginDownloadNotify
(extends java.lang.Object)
メソッド:
jarLoaded
アプレットのロード時のJARファイル中の各classファイルのロードが完了したときに呼び出されます。アプレット内でjava.net.URLConnectionを使用してファイルをダウンロードした場合には呼び出されないので、明示的にアプレット側からこのメソッドを呼び出してください。
public abstract void jarLoaded() |
setCurrentJar
アプレットをロードするときに呼び出されます。アプレット内でjava.net.URLConnectionを使用してファイルをダウンロードする場合にも呼び出されます。
public abstract void setCurrentJar(java.net.URL jar) |
ロードしようとするJARファイルのURL
setJars
アプレットがJARファイルをロードするときにロードされるJARファイルの配列が渡されます。
public abstract void setJars(java.net.URL[] jars) |
ロードされるJARファイルのURLの配列
・アプレットのコードベース
・archive 属性に記述されたJARファイル
また、com.fujitsu.jbk.plugin.browser.PluginAppletContextインタフェースで、PluginDownloadNotifyインタフェースを実装したクラスを取得するgetPluginDownloadNotify()メソッドが追加されています。
PluginDownloadNotifyクラスのクラスファイルは、JBKプラグインの開発用jarファイルに格納されています(JBKをインストールしたフォルダ配下の“classes\jbkstd.jar”になります)。このクラスを使用したアプレットのクラスをコンパイルする場合は、クラスパスにJBKプラグインの開発用jarファイルが含まれていることを確認してください。
ダウンロード通知クラスの指定
ダウンロード通知機能を実装したクラスを指定する場合には、jbkplugin.propertiesの中に以下の行を記述してください。
jbk.plugin.interface.download_notify=<ダウンロード通知機能を実装したクラス名> |
<ダウンロード通知機能を実装したクラス名>には、パッケージ名を含むクラス名を指定してください。
ダウンロード通知機能の使用方法
ダウンロード通知機能の使用方法を、以下に説明します。
PluginDownloadNotifyインタフェースを実装したクラスを作成します。
上記で作成したクラスをクライアントに配置します。クラスへはクラスパスが設定されている必要があります。
環境変数“CLASSPATH”にパスを追加するか、jbkplugin.propertiesのjbk.plugin.vmoptionでクラスパスを設定します。
jbkpluguin.propertiesにjbk.plugin.interface.download_notifyプロパティを追加し、クラス名を設定します。
注意
実装クラスの中でClass.getResource()メソッドを使用している場合
この場合、リソースの取得に失敗することがあります。ポリシーファイルを編集してクラスに対するjava.io.FilePermissionのread属性を追加してください。
例) grant { java.io.FilePermission "C:\\JBKPLG\\classes\\Progress.jar", "read"; }; |
注意
実装クラスの中で新規にスレッドを生成している場合
この場合、AccessControlExceptionがスローされることがあります。ポリシーファイルを編集してクラスに対するjava.lang.RuntimePermissionを追加してください。
例) grant codebase "file:/C:/JBKPLG/classes/Progress.jar" { java.lang.RuntimePermission "modifyThread"; java.lang.RuntimePermission "modifyThreadGroup"; }; |
または、以下の方法で、実装クラスを通常のクラスパスではなくブートストラップクラスパスに追加することで回避することができます。
-Xbootclasspathオプションで、実行クラスのパスを指定する。
JREのフォルダ下にclassesフォルダを作成し、このclassesフォルダに実装クラスを格納する(JREのclassesフォルダはデフォルトでブートストラップクラスパスに指定されています)。