Comments
Description
Transcript
J Business Kit 解説書 - ソフトウェア
FUJITSU Software Interstage Studio J Business Kit 解説書 B1WD-3187-01Z0(00) 2013年6月 まえがき 本書の目的 J Business Kit(以降、JBKと略記)は、Javaによる各種アプリケーションを作成する上で有効な業務支援ライブラリ、業務支援ツールおよ び、運用支援ツールで構成される業務システム開発キットです。 J Business Kitには、Javaプログラムを開発する環境(JBK開発環境)とJavaプログラムを実行・運用する環境(JBK運用環境)があります。 本書では、JBK開発環境上で開発を行うにあたって、J Business Kitの取り扱い、使用上の注意事項および、JBK運用環境を含めた情 報などを説明しています。 構成と読み方 本書の構成は、以下のようになっています。 ・ 第1章 JBKの概要 JBKの概要について説明しています。 ・ 第2章 JBKプラグイン JBKプラグインについて説明しています。 ・ 第3章 GUIライブラリ GUIライブラリについて説明しています。 ・ 第4章 ダウンロードインストーラ ダウンロードインストーラについて説明しています。 ・ 第5章 注意事項 JBK全体の注意事項について説明しています。 登録商標について Microsoft 、 Active Directory 、 ActiveX 、 Excel 、 Internet Explorer 、 MS-DOS 、 MSDN 、 Visual Basic 、 Visual C++ 、 Visual Studio、 Windows、Windows NT、Windows Server、Win32 は、米国およびその他の国における 米国Microsoft Corporationの商標または登録 商標です。 OracleとJavaは、Oracle Corporation およびその子会社、関連会社の米国およびその他の国における登録商標です。文中の社名、商 品名等は各社の商標または登録商標である場合があります。 その他の記載されている商標および登録商標については、一般に各社の商標または登録商標です。 なお、本文中では、(R)およびTMは略記しています。 2013年 6月 改版履歴 2012年 12月 初版 2013年 6月 第2版 -i- 目 次 第1章 JBKの概要......................................................................................................................................................................1 1.1 JBKとは................................................................................................................................................................................................1 1.2 動作対象のJava SE.............................................................................................................................................................................1 1.3 インストール構成.................................................................................................................................................................................1 第2章 JBKプラグイン.................................................................................................................................................................3 2.1 JBKプラグインとは...............................................................................................................................................................................3 2.1.1 Oracle社のJava Plug-in................................................................................................................................................................4 2.2 使用のための準備..............................................................................................................................................................................5 2.2.1 環境設定......................................................................................................................................................................................5 2.2.2 使用するための手順....................................................................................................................................................................7 2.2.3 HTMLファイルの作成..................................................................................................................................................................7 2.3 使用方法...........................................................................................................................................................................................10 2.3.1 Java VMの指定..........................................................................................................................................................................13 2.3.2 Java VMの起動オプションの指定.............................................................................................................................................14 2.3.3 セキュリティレベルの設定..........................................................................................................................................................15 2.3.4 プロキシの設定...........................................................................................................................................................................17 2.3.5 Javaコンソールの表示................................................................................................................................................................19 2.3.6 アプレットのダウンロード方式の指定.........................................................................................................................................22 2.3.7 HTTPSプロトコルの使用............................................................................................................................................................23 2.3.8 アプレットのダウンロード状態の表示.........................................................................................................................................24 2.3.9 Java VMの先行起動..................................................................................................................................................................25 2.3.10 アプレットのアクティブ/非アクティブ状態の通知..................................................................................................................27 2.3.11 アプレットへの終了問合せ.......................................................................................................................................................31 2.3.12 設定ファイルの切り替え...........................................................................................................................................................33 2.3.13 アプレットの独自キャッシュ......................................................................................................................................................34 2.3.14 ダウンロード通知機能..............................................................................................................................................................39 2.3.15 JavaScriptとの通信...................................................................................................................................................................41 2.3.15.1 アプレットからのJavaScript呼出し.....................................................................................................................................41 2.3.15.2 JavaScriptからアプレットのメソッド呼出し..........................................................................................................................44 2.3.15.3 Cookieアクセス..................................................................................................................................................................49 2.4 ブラウザのプロセスとJava VMの関係...............................................................................................................................................49 2.5 アプレット終了時の処理....................................................................................................................................................................50 2.6 アプレット印刷機能...........................................................................................................................................................................51 2.7 注意事項...........................................................................................................................................................................................51 2.8 エラーメッセージ一覧........................................................................................................................................................................54 2.9 jbkplugin.properties...........................................................................................................................................................................58 2.10 インストールしたJBKプラグインを判別する方法............................................................................................................................62 第3章 GUIライブラリ................................................................................................................................................................ 65 3.1 日本語入力.......................................................................................................................................................................................65 3.2 ユーザ定義文字の表示....................................................................................................................................................................66 3.3 Webブラウザからの連続印刷...........................................................................................................................................................66 3.4 補助文字の入力................................................................................................................................................................................67 3.5 Java SEに起因する問題点................................................................................................................................................................67 第4章 ダウンロードインストーラ................................................................................................................................................ 68 4.1 ダウンロードインストーラとは.............................................................................................................................................................68 4.2 インストーラの作成方法....................................................................................................................................................................69 4.2.1 ソフトウェアの用意......................................................................................................................................................................69 4.2.2 作成手順....................................................................................................................................................................................69 4.3 インストーラの実行方法....................................................................................................................................................................71 4.4 サイレントインストール機能...............................................................................................................................................................73 4.5 ダウンロードインストーラの注意事項................................................................................................................................................74 - ii - 第5章 注意事項.......................................................................................................................................................................76 5.1 セキュリティ上の注意事項................................................................................................................................................................76 5.2 使用条件補足...................................................................................................................................................................................76 用語集.....................................................................................................................................................................................77 - iii - 第1章 JBKの概要 JBKでは、既存アプリケーション資産を活用したJavaアプリケーションを効率的に開発・運用する際に有用なライブラリとツールを提供 します。 1.1 JBKとは JBKには、Javaプログラムを開発する環境(JBK開発環境)とJavaプログラムを実行・運用する環境(JBK運用環境)があります。 JBK開発環境をインストールしたマシンでJavaプログラムを開発し、JBK運用環境をインストールしたマシンでJavaプログラムを実行・運 用することができます。 JBK開発環境 JBK開発環境とは、JBK運用環境で実行・運用するJavaプログラムを開発する環境です。Javaアプリケーションを効率的に開発するた め、各種クラスライブラリを提供します。 ・ 対象製品 Interstage Studio Standard-J Edition ・ 機能 - GUIライブラリ - JBKプラグイン - ダウンロードインストーラ JBK運用環境 JBK運用環境とは、JBK開発環境で開発したJavaプログラムを実行・運用する環境です。開発したJavaアプリケーションの効率的な運 用を支援するツールを提供します。 ・ 対象製品 Interstage Studio クライアント運用パッケージ ・ 機能 - GUIライブラリ - JBKプラグイン 1.2 動作対象のJava SE JBKの動作には、以下のJava SEが必要です。 ・ JBK V6.3 製品添付のJava SE 6で動作を保証します。 ・ JBK V7.1 製品添付のJava SE 7で動作を保証します。 製品添付のJava SE 製品には、Oracle社のライセンスを受けた上で、富士通で機能強化および障害修正を実施したJava SEが含まれています。JBKは、製 品添付のJava SEでのみ動作します。Oracle社提供のJava SEでは動作しません。 1.3 インストール構成 -1- フォルダ構成 JBKをインストールした場合のJBK開発環境のフォルダ構成を、以下に示します。 製品インストール先 IDE\1101\JBK bin classes gui6 gui7 examples … … … … … Windows部品を格納 各ライブラリおよびツールのjarファイルを格納 JRE6用のGUIライブラリのjarファイルを格納 JRE7用のGUIライブラリのjarファイルを格納 各ライブラリのサンプルプログラムを格納 環境変数 JBKの動作に必要な環境変数は、以下のとおりです。 ・ CLASSPATH:製品インストール先\IDE\1101\JBK\gui6\jbkgui.jar 上記の環境変数は、インストール時にシステム側環境に設定します。 java.policyファイルの設定 インストーラ時に、製品インストール先\IDE\jre\lib\security\java.policyに、以下の情報を追加します。 grant codeBase permission }; grant codeBase permission }; "file:/(製品インストール先)/IDE/1101/JBK/gui6/jbkgui.jar" { java.security.AllPermission; "file:/(製品インストール先)/IDE/1101/JBK/examples/-" { java.security.AllPermission; -2- 第2章 JBKプラグイン JBKプラグインについて説明します。 2.1 JBKプラグインとは Webブラウザ上でのアプレットの実行をサポートするための機能を提供します。 Webブラウザで製品添付のJava SEを使用するには、JBKプラグインまたはJava Plug-inのどちらかが必要になります。JBKプラグインの 使用を推奨します。 JBKプラグインを用いると、ブラウザが提供するJava VMの代わりに、製品添付のJava SEを使用してアプレットを実行することができま す。これにより、ブラウザによるJava VMのバージョンの違いまたは動作の非互換を気にすることなく、アプレットを実行できるようになり ます。 図2.1 JBKプラグインの動作概要図 関連ソフトウェア JBKプラグインが動作可能なブラウザは、次のとおりです。 ・ Internet Explorer 7~10 すべてWindows製品です。各ブラウザがどのWindowsで動作保証されているかは、各ブラウザのドキュメントを参照してください。 注意 新しいWindows UIバージョンのInternet Explorer 10では動作しません。 新しいWindows UIバージョンのInternet Explorer 10でJBKプラグインが埋め込まれたHTMLページを表示した場合、該当部分は何も 表示されません。 この場合、アプリバーの[ページツール] > [デスクトップで表示する]を選択して、デスクトップ版のInternet Explorerの表示に切り替えて 使用してください。 -3- 2.1.1 Oracle社のJava Plug-in ブラウザ上でのアプレット実行をサポートするためのツールとしては、Oracle社のJava Plug-inがあります。 Java Plug-inを使用する上での注意事項 ・ 同一のブラウザのプロセス内で、Java Plug-inとJBKプラグインを一緒に使用することはできません。この2つを一緒に使用しようとす ると、Java Plug-inあるいはJBKプラグインが誤動作を起こす可能性があります。どちらかのみを使用するようにしてください。 Oracle社のJava Plug-inとJBKプラグインの違い JBKプラグインが提供する機能は、基本的にはJava Plug-inが提供する機能と同じですが、以下の点で異なります。 ・ 追加のポリシーファイルの指定が可能 Java SEでは、セキュリティ設定用に新たにポリシーファイルと呼ばれる設定ファイルが導入されました。JBKプラグインでは、プラグ イン使用時に追加のポリシーファイルを設定することができます。このため、JBKプラグインのポリシーファイルを使用することによ り、使用するJava SEを切り替えた場合やJava SEを再インストールした場合にも、デフォルトのポリシーファイルに設定を記述し直す ことなく常に同じ設定が使用できるようになります。 セキュリティレベルの設定方法は、“2.3.3 セキュリティレベルの設定”を参照してください。 ・ Java VMの先行起動が可能 ブラウザ上でアプレットを実行する場合には、初回実行時にJava VMの起動が必要です。一般的には、Java VMの起動には数秒 ~数十秒かかり、この間ブラウザがユーザの操作を全く受け付けなくなることもあります。 JBKプラグインを用いると、HTMLファイルの記述方法により、アプレットを実行せずにJava VMだけを起動する、ということが可能 になります。Java VMの起動はバックグラウンドで行われますので、この場合、Java VMの起動中にブラウザがユーザの操作を受け 付けなくなる、ということはありません。これにより、次のような使用方法が可能になります。 a. アプレットを実行するHTMLファイルとは別に、Java VMのみを起動するHTMLファイルを作成します。このHTMLファイルで は、アプレットの実行前に行える処理(アプリケーションのタイトルページの表示、お知らせの表示あるいは、ユーザからの何 らかの入力要求など)を同時に行うようにします。 b. ブラウザを起動し、a.で作成したHTMLファイルを始めに読み込ませます。ブラウザの画面上では、このHTMLファイルに記 述されているアプレット実行前の処理が実行されます。この間に、JBKプラグインはバックグラウンドでJava VMを起動しま す。したがって、Java VMの起動がブラウザの画面上の処理を妨げることはありません。 c. アプレット実行前の処理が終了したら、次にアプレットを実行するHTMLファイルを呼び出します。JBKプラグインによるJava VMの起動が完了している場合には、すぐにアプレットのダウンロードが開始されます。ユーザがJava VMの起動完了を待つ 必要はありません。 Java VMの先行起動の方法は、“2.3.9 Java VMの先行起動”を参照してください。 ・ アプレットのアクティブ/非アクティブ状態の通知 ブラウザ上でアプレットを実行する場合には、1つのブラウザウィンドウ上に複数のアプレットを置いて実行することができます。この ため、ブラウザウィンドウのアクティブ状態と各アプレットのアクティブ状態は必ずしも一致しません。 JBKプラグインでは、アプレットのアクティブ状態を独自に定め、そのアクティブ状態が切り替わるタイミングをアプレットに通知する 機能を提供しています。複数のアプレットからなるシステムで、アプレットごとに動作環境を切り替えたい場合などに、この通知を使 用すると便利です。 また、ダイアログなどのポップアップウィンドウを表示して、そのウィンドウを閉じたときにアプレットをアクティブ化させることなどにも 利用できます。 アプレットのアクティブ状態の通知の詳細は、“2.3.10 アプレットのアクティブ/非アクティブ状態の通知”を参照してください。 ・ アプレットへの終了問い合わせ JBKプラグインは、ユーザがブラウザのウィンドウを閉じようとしたときに、そのウィンドウ上で実行しているアプレットに対して終了の 問合せを行う機能を提供しています。この機能を使用するアプレットは、JBKプラグインからの終了問合せに対して、終了の許可 /不許可を返答することができます。 アプレットへの終了問い合わせの方法は、“2.3.11 アプレットへの終了問合せ”を参照してください。 -4- ・ 設定ファイルの切り替え 設定ファイルを複数用意し、JBKプラグイン用のHTMLファイルで呼び分けることにより、異なる設定のJBKプラグインを同一クライ アント上で動作させることが可能です。 これにより、2つのブラウザにそれぞれ異なるJREを指定した設定ファイルを読み込ませ、異なるバージョンのVMを使用してアプ レットを実行するという使い方も可能となります。 設定ファイルの切り替えの方法は、“2.3.12 設定ファイルの切り替え”を参照してください。 これらの機能が必要とされる場合には、JBKプラグインの使用をお勧めします。 参照 Java Plug-inの詳細は、以下を参照してください。 Oracle社の“JAVA PLUG-IN TECHNOLOGY”(http://www.oracle.com/technetwork/java/index-jsp-141438.html) 2.2 使用のための準備 JBKプラグインを使用するための準備方法を説明します。 2.2.1 環境設定 JBKプラグインを使用するための環境設定の方法を説明します。 JBKプラグインを使用してアプレットを実行するためには、以下の4点の確認が必要です。 必要なソフトウェア アプレットを実行するクライアントマシンに、以下がインストールされている必要があります。 ・ Webブラウザ ・ JDKまたはJRE ・ JBKプラグイン これらの製品の実行環境の設定方法は、それぞれの製品の説明書を参照してください。 アプレットのクラスとHTMLファイルの格納 アプレットのクラスおよびアプレットを実行するためのHTMLファイルの格納方法は、ブラウザで通常アプレットを実行する場合の格納 方法と同じです。アプレットの実行方法に応じて、以下のどちらかの方法で格納してください。 ・ アプレットのクラスとHTMLファイルをWebサーバに格納します。アプレットはクライアントマシンにダウンロードされて実行されます。 ・ アプレットのクラスとHTMLファイルをクライアントマシンに格納します。アプレットはクライアントマシンのローカル環境内で実行され ます。 JBKプラグインを使用する場合には、HTMLファイル内でアプレットを指定する部分に、JBKプラグイン用のタグを記述します。JBKプラ グイン用のHTMLファイルの記述方法は、“2.2.3 HTMLファイルの作成”を参照してください。 ブラウザの設定 使用するブラウザに応じて、以下の設定が必要になります。 JBKプラグインのコントロールモジュール JBKプラグインのコントロールモジュール(f5cxwpie.ocx)は、従来はシングルスレッドモデルで作成していました。しかし、Internet Explorer 5以降の環境で使用した場合、新規ウィンドウを開いてそこでアプレットを表示した場合にアプレットが正しく表示されない という問題が発生することがあります。このため、f5cxwpie.ocxをアパートメントスレッドモデルで作成するように変更しました。従来の シングルスレッドモデルのモジュールは“[JBKインストール先]\bin\single”フォルダに格納されています。シングルスレッドモデルの -5- コントロールモジュールを使用する際は、“[JBKインストール先]\bin\f5cxwpie.ocx”と入替え、以下のコマンドを必ず実行してくだ さい。 regsvr32 /u [JBKインストール先]\bin\f5cxwpie.ocx regsvr32 [JBKインストール先]\bin\f5cxwpie.ocx シングルスレッドモデルのコントロールモジュールからアパートメントスレッドモデルのコントロールモジュールに戻す場合も、上記の コマンドを必ず実行してください。 環境変数の設定 JBKプラグインは、使用時にクライアントマシンの以下の環境変数を使用します。すでに設定されている場合は、そのままでかまいませ ん。 CLASSPATH アプレットの実行に必要なJavaクラスがクライアントマシンにインストールされている場合は、そのJavaクラスに対するクラスパスを追 加してください。JBKプラグインは、Java Plug-inとは異なり、デフォルトでは実行時にCLASSPATH環境変数を利用します。 Java VMを使用する場合のクラスパスの設定 Java VMが使用するクラスパスには、Java VMの起動に必要なブートストラップクラスパスと、アプレット実行のために指定するユーザク ラスパスがあります。JBKプラグインは、実行時に内部で独自にブートストラップクラスパスを設定します。 独自に設定するブートストラップクラスパスの内容および設定順は以下のとおりです。 1. JBKプラグインのクラスをまとめたJARファイル “(JBKインストールフォルダ)\classes\jbkplugin2.jar”、または“(JBKインストールフォルダ)\classes\jbkplugin4.jar”のことです。 2. Java VMの起動オプションに“-Xbootclasspath”が指定されている場合:起動オプションに指定されたブートストラップクラスパス Java VMの起動オプションに“-Xbootclasspath”が指定されていない場合:Java VMとして使用するJava SEのデフォルトのブート ストラップクラスパス Java SEのデフォルトのブートストラップクラスパスは、そのJava SEが使用する“rt.jar”、“i18n.jar”、“jce.jar”、“jsse.jar”および “charsets.jar”へのパスとなります。 ユーザクラスパスには、以下が使用されます。 ・ Java VMの起動オプションに“-classpath”あるいは“-cp”が指定されている場合 起動オプションに指定されたクラスパス ・ Java VMの起動オプションに“-classpath”あるいは“-cp”が指定されていない場合 環境変数“CLASSPATH”に設定されているクラスパス Java Plug-inのように、環境変数“CLASSPATH”を使用しない場合はjbkplugin.propertiesファイルに以下のプロパティを設定することに より、環境変数“CLASSPATH”の設定を無効にできます。 jbk.plugin.sw.classpath.use_env=<環境変数“CLASSPATH”の使用> <環境変数“CLASSPATH”の使用>には、以下のどちらかを指定してください。 true Java VMの起動時に環境変数“CLASSPATH”の設定を使用します。 false Java VMの起動時に環境変数“CLASSPATH”の設定を使用しません。 なお、デフォルト状態では、jbk.plugin.sw.classpath.use_envの値はtrue(使用する)に設定されています。 注意 起動オプションの“-Xbootclasspath”の指定 -6- 起動オプションの“-Xbootclasspath”の指定には、使用するJava SEと異なるバージョンのブートストラップクラスパスを含めないようにし てください。そうしないと、Java VMの実行時に異なるバージョンのクラスが呼び出されてしまい、Java VMの誤動作あるいは実行時に エラーを引き起こす可能性があります。また、環境変数“CLASSPATH”に存在するクラスをアプレット実行時にWebサーバからダウン ロードした場合は、セキュリティ例外が発生することがあります。その場合はJava VMの起動オプションに-classpathオプションを追加し てクラスパスを設定しなおすか、上記のプロパティを“false”に設定してください。 2.2.2 使用するための手順 JBKプラグインを用いてブラウザ上でアプレットを実行するために必要な手順は、次のとおりです。 1. アプレットのクラスを作成します。 通常のアプレットのクラスの作成方法と同じです。 2. アプレットを実行するためのHTMLファイルを作成します。 通常、アプレットを実行するためにはHTMLファイルに<APPLET>タグを記述しますが、JBKプラグインを使用する場合には、 <APPLET>タグの代わりにJBKプラグイン用のタグを記述します。JBKプラグイン用のHTMLファイルの記述方法は、“2.2.3 HTML ファイルの作成”を参照してください。 3. 作成したアプレットのクラスとHTMLファイルをWebサーバに格納します。 通常の格納方法と同じです。 4. クライアントマシンでブラウザを起動し、Webサーバに格納したHTMLファイルを読み込みます。HTMLファイルを読み込ませる には、そのHTMLファイルの格納場所を表すURLをブラウザに入力します。 ブラウザは、JBKプラグイン用のタグが記述されているHTMLファイルを読み込むと、自動的にJBKプラグインを起動します。後 は、JBKプラグインがアプレットのクラスをダウンロードし、ブラウザが提供するJava VMの代わりに他のフォルダにインストールさ れたJava VMを使用して、ブラウザ上でアプレットを実行します。 2.2.3 HTMLファイルの作成 JBKプラグインを使用するためのHTMLファイルの作成方法を説明します。 記述方法は使用するブラウザにより異なります。以下の説明に従って、JBKプラグイン用のHTMLファイルを作成してください。 <APPLET>タグによるアプレットの指定方法の詳細は、JDKのドキュメントを参照してください。なお、JBKプラグインで使用可能な <APPLET>タグの属性の詳細は、“サポートしている<APPLET>タグの属性”を参照してください。 Internet Explorer用のHTMLファイルの作成方法 Internet ExplorerでJBKプラグインを使用する場合のHTMLファイルの作成方法を、次に示します。 1. <APPLET>...</APPLET>タグの代わりに、<OBJECT>...</OBJECT>タグを使用します。 2. <OBJECT>タグのCLASSID属性に、“CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67”を指定します。この指定により、 Internet ExplorerがJBKプラグインを自動的に実行するようになります。 3. <OBJECT>...</OBJECT>タグの間に、以下の<PARAM>タグを記述します。 <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> 4. <APPLET>タグに指定する属性のうち、以下の属性はそのまま<OBJECT>タグの中に記述します。 - WIDTH、HEIGHT(必須属性) - ALIGN、HSPACE、VSPACE(オプション属性) 5. <APPLET>タグに指定する属性のうち、上記以外の属性は<OBJECT>...</OBJECT>の間に<PARAM>タグを用いて記述しま す。このとき、<PARAM>タグの記述方法は、<PARAM NAME="属性名" VALUE="属性値">となります。 6. アプレットに渡すパラメータの指定(<APPLET>...</APPLET>間の<PARAM>タグによる指定)は、そのままの形式で<OBJECT>...</ OBJECT>の間に記述します。 -7- アプレットにフォーカスが設定されている場合、ブラウザのショートカットキーは無効になります。Internet Explorerでは、アプレットを表 示しているページを【Ctrl】+【N】で新規ウィンドウで開いた場合、 アプレットにフォーカスが設定され、ショートカットキーが無効になるこ とがあります。 アプレットにフォーカスを設定したくない場合は、<BODY>タグに onload="window.focus()" というイベントハンドラを設定してくださ い。 また、アプレットへのタブ移動を抑止したい場合は、<OBJECT>タグに"tabIndex=-1"というプロパティを設定してください。 例 Internet Explorer用のHTMLファイルの記述例 <APPLET>タグの記述を、Internet ExplorerでJBKプラグインを使用するための記述形式に変更する例を、次に示します。 ・ <APPLET>タグによる記述例(JBKプラグインを使用しない場合) <APPLET NAME="sample" CODE="Sample.class" ARCHIVE="sample.jar" WIDTH=100 HEIGHT=100> <PARAM NAME="color" VALUE="blue"> <PARAM NAME="useDefault" VALUE="true"> </APPLET> ・ JBKプラグインを使用するための記述形式(Internet Explorer用) <OBJECT CLASSID="CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67" WIDTH=100 HEIGHT=100> <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> <PARAM NAME="NAME" VALUE="sample"> <PARAM NAME="CODE" VALUE="Sample.class"> <PARAM NAME="ARCHIVE" VALUE="sample.jar"> <PARAM NAME="color" VALUE="blue"> <PARAM NAME="useDefault" VALUE="true"> </OBJECT> 非表示状態のアプレットを使用する場合 HTMLで<object>要素を非表示にするには、以下の方法があります。 方法1 width=0,height=0でobjectタグを生成する。 この場合、画面は見えなくなりますが、アプレット起動により画面がフォーカスを持ってしまったり、HTML上でのタブ切り替え(Tab 押下)にてアプレットにフォーカスが設定されてしまう場合があります。 そのため、objectにtabindex=-1という属性を設定して、その画面にフォーカスを移動させないようにしてください。 方法2 <object>タグを囲む<div>タグを用意し、表示スタイルを非表示にする(display=noneまたはvisibility=hidden)。 ただし、最初から非表示状態の場合は、JBKプラグインのコントロールが生成されず、アプレットが開始されません。最初は表示状 態で生成し、その後に表示スタイルを非表示状態にしてください。 注意 アプレットの起動時に非表示状態の場合は、アプレットが起動できない場合があります。 以下の条件に適合する場合はアプレットが開始できなくなります。 - <object>タグをスクリプトで挿入している。かつ、 - 同じイベントハンドラ上で表示スタイルを非表示状態にした場合 -8- JBKプラグインは、ウィンドウのサイズが確定した後アプレットを生成しています。しかし、上記条件の場合は、objectのウィンドウの 大きさが通知される前に非表示状態となるため、アプレットの子ウィンドウの生成が開始できない状態になっています。この場合は 表示スタイルを非表示状態にする処理を、スクリプトのsetTimeout()関数を使用して次のイベントとして処理させてください。 サポートしている<APPLET>タグの属性 JBKプラグインでは、以下の<APPLET>タグの属性が指定できます。 ・ 必須属性 アプレットを実行するために必ず指定する属性です。 属性名 説明 CODE アプレットのクラス名を指定します。 WIDTH アプレットの幅を指定します。 ※style属性でWIDTH属性を指定しないでください。 HEIGHT アプレットの高さを指定します。 ※style属性でHEIGHT属性を指定しないでください。 ・ オプション属性 必要に応じて指定する属性です。オプション属性の指定は省略可能です。 属性名 ALIGN 説明 アプレットの配置を指定します。以下の指定が可能です。 ・ top:アプレットの上端をテキストの上端に揃えます。 ・ bottom:アプレットの下端をテキストの下端に揃えます。 ・ left:アプレットをブラウザの左端に配置し、その右側にテキストを表示します。 ・ right:アプレットをブラウザの右端に配置し、その左側にテキストを表示します。 ARCHIVE アプレットのクラスが含まれているJARファイルを指定します。 CODEBASE アプレットのクラスのダウンロード元となるURLを指定します。HTMLファイルとアプレットのクラスのダウンロード 元が異なる場合に指定します。 HSPACE アプレットの左右のスペースを指定します。 NAME アプレットの名前を指定します。 VSPACE アプレットの上下のスペースを指定します。 注意 属性名およびパラメータ名の大文字・小文字の扱い ・ <APPLET>タグの属性をJBKプラグイン用のHTMLファイルに記述する場合には、<APPLET>タグ内に記述する場合と同様、属性 名の大文字、小文字は区別されません。例えば、アプレットのクラス名を指定する場合には、属性名は“CODE”と“code”のどちら で記述してもかまいません。 ・ JBKプラグインを使用してアプレットを実行する場合には、アプレットに渡すパラメータ名の大文字・小文字は区別されません。 ポイント Java Plug-inとのHTMLファイルの互換性 -9- JBKプラグインを使用するためのHTMLファイルは、Oracle社のJava Plug-inを使用するためのHTMLファイルとの互換性を考慮してい ます。Java Plug-inを使用するためのHTMLファイルを用いてJBKプラグインを使用したい場合には、HTMLファイル内の以下の箇所を 変更するだけでかまいません。 ・ Java Plug-inを使用するためのHTMLファイルに記述されている<OBJECT>タグのCLASSID属性を、“CLSID:BEA62964C40B-11D1-AACA-00A0C9216A67”に変更してください。 ・ <OBJECT>タグ内に以下のようなCODEBASE属性の記述がある場合は、その記述を取り除いてください。 codebase=“Java Plug-inのダウンロード元URL” “Java Plug-inのダウンロード元URL”の部分には、Java Plug-inをダウンロードするためのURLが記述されています。例えば、Java Plug-in 1.5.0では、“Java Plug-inのダウンロード元URL”の部分には、以下のようなURLが記述されています(このURLの記述は、 Java Plug-inのバージョンアップにより変更される可能性があります)。 http://java.sun.com/update/1.5.0/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0 ・ <OBJECT>...</OBJECT>タグの間に、以下のような<PARAM>タグが記述されているかどうかを確認してください。 <PARAM NAME="type" VALUE=“Java Plug-inの型情報”> “Java Plug-inの型情報”の部分には、Java Plug-inが内部で使用する型情報が以下のいずれかの形式で記述されています(これら の型名は、Java Plug-inのバージョンアップにより変更される可能性もあります)。 a. application/x-java-applet b. application/x-java-applet;version=nnn c. application/x-java-bean d. application/x-java-bean;version=nnn (nnnは、Java Plug-inのバージョン番号) このようなタグが記述されている場合は、この<PARAM>タグを以下の記述に置き換えてください。このようなタグが記述されていな い場合は、<OBJECT>...</OBJECT>タグの間に以下の<PARAM>タグの記述を追加してください。 <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> 2.3 使用方法 JBKプラグインに関する設定情報は、jbkplugin.propertiesというファイルに記述されています。jbkplugin.propertiesは、JBKをインストー ルしたフォルダの下の、“classes”というフォルダの中にあります。JBKプラグインの設定を変更する場合には、jbkplugin.propertiesをテ キストエディタで編集して、設定内容を変更してください。 表2.1 jbkplugin.propertiesの設定例 ##************************************************************************ ##* J Business Kit: Copyright FUJITSU LIMITED 2012 ##* All Rights Reserved ##* ##* jbkplugin.properties ##************************************************************************ # '#'で始まる行はコメント行。 # # 注意事項: # ・1行の最大桁数は1024バイトです。 # ・Windows Vista/Windows 7で保護モードが有効なサイトのアプレットを使用する # 場合、保存/出力フォルダはユーザディレクトリのAppData\LocalLow下を指定して # ください。 # ・インストールフォルダが空白を含む場合、jbk.plugin.policy.urlに # ${jbk.home}を使用しないでください。ポリシーファイルの読み込みに失敗します。 - 10 - # Java VMの指定 # 以下はJava VMの指定例です。 #jbk.plugin.javahome=C:\jdk6 # あるいは #jbk.plugin.javahome=C:\jdk7 # VMの起動オプションの指定 # 以下は起動オプションの指定例です。 jbk.plugin.vmoption=-Dsun.java2d.noddraw=true # JBKプラグインで使用するポリシーファイルの指定 # (この設定はJava2のVM使用時のみ有効です) jbk.plugin.policy.url=file:/${jbk.home}/classes/jbkplugin.policy # プロキシの設定 # 以下はプロキシの指定例です。 #jbk.plugin.proxy.enable=true #jbk.plugin.proxy.http.host=proxy.fujitsu.co.jp #jbk.plugin.proxy.http.port=8080 #jbk.plugin.proxy.override=*.fujitsu.co.jp|*.fujitsu.com #jbk.plugin.proxy.secure.host=proxy.fujitsu.co.jp #jbk.plugin.proxy.secure.port=8080 # Javaコンソールの表示/非表示の指定 jbk.plugin.console.visible=false # アプレットのダウンロード方式の指定 # 次の設定が使用可能です。 # - java: # Javaのネットワーク通信クラスを使用する。 # - native: # ブラウザの機能を使用する。 # - hybrid: # クラスファイルとJARファイル:ブラウザの機能を使用する。 # その他のファイル:Javaのネットワーク通信クラスを使用する。 # jbk.plugin.protocol.http=hybrid # HTTPSプロトコルによるアプレットのダウンロード方式の指定 # 次の設定が使用可能です。 # # - java: # Javaのネットワーク通信クラスを使用する。 # - native: # ブラウザの機能を使用する。 # - hybrid: # クラスファイルとJARファイル:ブラウザの機能を使用する。 # その他のファイル:現在はHTTPS接続によるダウンロードは不可。 # jbk.plugin.protocol.https=hybrid # アプレットの独自キャッシュ用の指定 # # 次の項目が設定可能です。 # - 独自キャッシュの使用/非使用の指定 # - 独自キャッシュの保存フォルダの指定 # - 独自キャッシュの保存フォルダの空き容量の指定 # - 独自キャッシュの更新条件の指定 jbk.plugin.www.plugin_cache.enable=false jbk.plugin.www.plugin_cache.dir=${user.home}\applet_cache jbk.plugin.www.plugin_cache.dir.freespace=1% jbk.plugin.www.plugin_cache.update=newer # - 更新条件がnewerのとき、高速化モードを使用するかの指定 - 11 - #jbk.plugin.www.plugin_cache.accelerate=true # - 2パス確認モードを使用するかの指定(高速化モード指定時無効) #jbk.plugin.www.plugin_cache.twopass=true # アプレットのダウンロード状態の表示/非表示の指定 jbk.plugin.applet.showmessage=true # JavaScript からのアプレットのメソッド呼び出しの指定 # (Internet Explorer, Netscape 6/7 のみ有効) #jbk.plugin.sw.script.enable=true # アプレットのダウンロード状態を監視するクラスの指定 #jbk.plugin.interface.download_notify= # Java VM メッセージの出力 #jbk.plugin.debug.showvmmsg=true # Java VM メッセージの出力フォルダ #jbk.plugin.debug.tracedir=C:\WINDOWS\TEMP # Javaコンソールログのファイル出力 jbk.plugin.debug.console_log=false # Javaコンソールログのファイル出力フォルダの指定 #jbk.plugin.debug.console_log.dir=${jbk.home}/console_log # Javaコンソールログのファイル数制限値の指定 #jbk.plugin.debug.console_log.history=5 # Javaコンソールログのファイル出力サイズ制限値の指定 #jbk.plugin.debug.console_log.size=100K # Javaコンソールログの行ヘッダを追加するかどうかの指定 #jbk.plugin.debug.console_log.header=false # ブラウザを閉じるときにアプレットの終了を待つかどうかの指定 #jbk.plugin.sw.applet.delay=false # ブラウザがアクティブ状態になったときに強制的にアプレットをアクティブ化 # させるかどうかの指定 #jbk.plugin.sw.fbc.force_activate=true 注意 jbkplugin.propertiesの設定内容を変更した場合 動作中のJBKプラグインには設定の変更は反映されません。JBKプラグインに設定内容の変更を反映させるためには、ブラウザを再 起動して、JBKプラグインを使用するHTMLファイルをブラウザで読み込み直してください。 JBKプラグインの設定情報 jbkplugin.propertiesにおける各設定を、以下の内容で説明します。 ・ 2.3.1 Java VMの指定 ・ 2.3.2 Java VMの起動オプションの指定 ・ 2.3.3 セキュリティレベルの設定 ・ 2.3.4 プロキシの設定 ・ 2.3.5 Javaコンソールの表示 ・ 2.3.6 アプレットのダウンロード方式の指定 ・ 2.3.7 HTTPSプロトコルの使用 ・ 2.3.8 アプレットのダウンロード状態の表示 - 12 - ・ 2.3.13 アプレットの独自キャッシュ ・ 2.3.14 ダウンロード通知機能 JBKプラグインにはこの他にも以下の機能があります。各機能を、それぞれの節で説明します。 ・ 2.3.9 Java VMの先行起動 HTMLファイルの記述の仕方により、アプレットを実行せずにJavaVMだけを先行起動することが可能です。 ・ 2.3.10 アプレットのアクティブ/非アクティブ状態の通知 JBKプラグインでは、アプレットのアクティブ/非アクティブ状態を独自に定め、そのアクティブ/非アクティブ状態が切り替わるタ イミングをアプレットに通知する機能を提供しています。 ・ 2.3.11 アプレットへの終了問合せ アプレット実行中にユーザがブラウザを終了しようとした場合に、ブラウザを終了して良いかどうかをアプレットに問い合わせること が可能です。 ・ 2.3.12 設定ファイルの切り替え JBKプラグインの設定ファイル(jbkplugin.properties)を切り替えることにより、ブラウザ毎に別の情報を設定することが可能です。 ・ 2.3.15 JavaScriptとの通信 アプレットからJavaScriptを呼び出したり、JavaScriptからアプレットのpublicメソッドを呼び出したりすることが可能です。 2.3.1 Java VMの指定 JBKプラグインがアプレットの実行に用いるJava VMの指定方法を説明します。 なお、JBKプラグインインストール時のデフォルト状態(初期状態)では、JBKプラグインはJBKのインストール時に選択したJava SEをJava VMとして使用します。使用するJava VMを変更する必要がない場合には、ユーザがJava VMの指定を行う必要はありません。 使用するJava VMの指定方法 使用するJava VMをデフォルト状態から変更する必要がある場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.javahome=<Java SEのインストールフォルダ> <Java SEのインストールフォルダ>には、Java VMとして使用するJava SEのインストールフォルダを指定します。 注意 ・ デフォルト状態では、jbkplugin.properties内のJava VMの指定行はコメント行('#'の付いた行)になっています。 Java VMの指定を行う場合には、行の先頭の'#'を取り除いてください。 ・ Java SEのインストールフォルダ名に空白文字が含まれている場合には、Java SEのインストールフォルダ名を'"'(ダブルクォーテー ション)で囲んで指定してください。 ・ JBKプラグインで使用するJava VMには、実行するアプレットに合わせて、適切なバージョンのJava SEを指定してください。 例 使用するJava VMの指定例 jbk.plugin.javahome="C:\Program Files\jdk1.6.0" ポイント 使用するJava VMの指定の検索順序 - 13 - JBKプラグインは、アプレットの実行に使用するJava VMの指定を以下の順番で検索します。 1. 使用するJava VMがjbkplugin.properties内に記述されている場合には、そのJava VMを使用します。 2. 使用するJava VMがjbkplugin.properties内に記述されていない場合には、JBKのインストール時に選択したJava SEがJava VM として使用されます(デフォルト状態の動作)。 3. もし、JBKのインストール時に選択したJava SEの情報が取得できなかった場合は、環境変数JAVA_HOMEに設定されているJava SEをJava VMとして使用します。この状況は、JBKのインストール情報を記録しているレジストリが何らかの原因で参照できなく なった場合に起こります。 2.3.2 Java VMの起動オプションの指定 Java VMの起動オプションの指定方法を説明します。 JBKプラグインでJava VMを起動する際には、JDKのjavaコマンドのコマンドオプションをJava VMの起動オプションとして指定すること ができます。必要に応じて、以下の説明に従い起動オプションを指定してください。 Java VMの起動オプションの指定方法 Java VMの起動オプションを指定する場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.vmoption=<Java VMの起動オプション> <Java VMの起動オプション>には、以下のオプションが指定可能です。各オプションの詳細は、JDKのドキュメントのjavaコマンドの説 明を参照してください。 Java SEのJava VM使用時に指定可能な起動オプション 複数のオプションを指定する場合には、各オプションを' '(空白)で区切って記述してください。 -agentlib ネイティブエージェントライブラリの指定 -classpath(あるいは-cp) クラスパスの指定 -D プロパティの定義 -Xbootclasspath ブートストラップクラスパスの指定 -Xbootclasspath/p 指定されたパスをデフォルトのブートストラップクラスパスの前に追加する -Xbootclasspath/a 指定されたパスをデフォルトのブートストラップクラスパスの後に追加する -Xms ヒープ領域のスタートアップサイズの指定 -Xmx ヒープ領域の最大サイズの指定 -Xnoclassgc Javaクラスのガベージコレクションを行わない -Xrunhprof CPUやヒープなどのプロファイリングを行う(-Xrunhprof:helpは使用不可) - 14 - -Xrs OSのシグナルの使用を減らす -Xfuture クラスファイルのフォーマットを厳密に検査する 注意 ・ デフォルト状態では、jbkplugin.properties内のJava VMの起動オプション指定行は"-Dsun.java2d.noddraw=true" (DirectDrawの抑 止) が指定されています。 OSがWindows XPの場合、このオプションはそのまま使用することをお勧めします。 ・ -classpathオプションの指定で、クラスパス名に空白文字が含まれている場合には、クラスパス名を'"'(ダブルクォーテーション)で囲 んで指定してください。 ・ -ms、-mx、-Xmsおよび-Xmxオプションでヒープ領域のサイズを指定する際には、ヒープ領域のスタートアップサイズが最大サイズ 以下となるように指定してください。スタートアップサイズが最大サイズより大きく設定されていると、JBKプラグインはJava VMの起 動に失敗します。 ・ オプションの長さは、“jbk.plugin.vmoption=”を含めて1024byte以内に収めてください。1025byte目以降の文字列は無視されます。 例 Java VMの起動オプションの指定例 jbk.plugin.vmoption=-Xms32m -Xmx96m -Dsun.java2d.noddraw=true 2.3.3 セキュリティレベルの設定 アプレットを実行するときのセキュリティレベルの設定方法を説明します。 Java2では、セキュリティ設定用に新たにポリシーファイルと呼ばれる設定ファイルが導入されました。ポリシーファイルとは、アプレットご とにセキュリティチェックの対象となる各操作を許可するかを設定するためのファイルです。ポリシーファイルを使用することで、Java SE は1.1系のJava VMよりも自由なセキュリティ設定ができるようになっています。 Java SEを使用する場合には、JBKプラグインのセキュリティ設定もポリシーファイルの設定内容に従います。JBKプラグインが使用する ポリシーファイルの詳細は以下の説明を参照してください。なお、ポリシーファイルによるセキュリティ設定の詳細は、JDKのドキュメント を参照してください。 JBKプラグインが使用するポリシーファイル JBKプラグインは、以下の2種類のポリシーファイルを使用します。 ・ JBKプラグインのポリシーファイル JBKプラグインのポリシーファイルの格納場所は、jbkplugin.propertiesの中の以下の行に記述されています。 bk.plugin.policy.url=<ポリシーファイルの格納場所を表すURL> <ポリシーファイルの格納場所を表すURL>には、ポリシーファイルの絶対パスをURL形式で指定します。デフォルト状態の設定は 以下のようになっています。 - file:${jbk.home}/classes/jbkplugin.policy JBKのインストールフォルダにある“classes”フォルダの“jbkplugin.policy”ファイルを表します(${jbk.home}は、JBKのインストー ルフォルダを表すプロパティです)。 JBKのインストールフォルダが空白を含む場合、jbk.plugin.policy.urlに${jbk.home}を使用しないでください。ポリシーファイルの読 み込みに失敗します。 - 15 - ・ Java SEのデフォルトのポリシーファイル Java SEには、以下の場所にデフォルトのポリシーファイルが用意されています。 - JDK:(JDKのインストールフォルダ)\jre\lib\security\java.policy - JRE:(JREのインストールフォルダ)\lib\security\java.policy - 共通:(${user.home})\.policy JBKプラグインによるアプレット実行の際には、これらのポリシーファイルの設定が両方とも有効になります。同じアプレットに対する権 限設定が両方のポリシーファイルに記述されている場合には、両方の権限が許可されます。 アプレットの権限の設定はどちらのポリシーファイルに記述してもかまいません。JBKプラグインのポリシーファイルに記述すると、使用 するJava SEを切り替えた場合やJava SEを再インストールした場合にも、デフォルトのポリシーファイルに設定を記述し直すことなく常に 同じ設定が使用できるようになります。 例 ポリシーファイルの記述例 以下は、あるアプレットにすべての権限を許可したい場合のポリシーファイルの記述例です。 grant codeBase "(アプレットのコードベースを表すURL)" { //AllPermissionは、すべての権限を表すパーミッション permission java.security.AllPermission; }; この記述例のAllPermissionは、すべての権限をアプレットに許可するため、注意が必要です。実際の運用時では、AllPermissionの代 わりに必要な権限だけを記述するようにします。 ポイント JBKプラグインが独自のポリシーファイルを使用するのを止めたい場合には、jbkplugin.properties内のポリシーファイルの格納場所の 指定行(“jbk.plugin.policy.url”が記述されている行を削除するか、行の先頭に'#'を挿入してコメント行にしてください。 各操作に必要な権限 セキュリティチェックの対象となる各操作を行うために必要な権限を、下表に示します。これらの権限の詳細およびポリシーファイルへ の設定方法は、JDKのドキュメントを参照してください。 対象となる操作 ローカルのファイルの読込み 必要な権限 (ファイル記述子による読込み) java.lang.RuntimePermission "readFileDescriptor"; (ファイル名による読込み) java.io.FilePermission "{file}","read"; ローカルのファイルへの書込み (ファイル記述子による書込み) java.lang.RuntimePermission "writeFileDescriptor"; (ファイル名による書込み) java.io.FilePermission "{file}","write"; ローカルのファイルの削除 java.io.FilePermission "{file}","delete"; ネットワーク接続の要求(connect) (ポート番号が-1の場合) java.net.SocketPermission "{host}","resolve"; (それ以外の場合) java.net.SocketPermission "{host}:{port}","connect"; - 16 - 対象となる操作 ネットワークポートでの待機(listen) 必要な権限 (ポート番号が0の場合) java.net.SocketPermission "localhost:1024-","lesten"; (それ以外の場合) java.net.SocketPermission "localhost:{port}","lesten"; ネットワーク接続要求の受理(accept) java.net.SocketPermission "{host}:{port}","accept"; マルチキャストの使用 java.net.SocketPermission(maddr.getHostAddress(),"accept,connect"); ネットワーク関連クラスのファクトリの設定 java.lang.RuntimePermission "setFactory"; 他のスレッドグループのスレッドの操作 (スレッドの操作) java.lang.RuntimePermission "modifyThread"; (スレッドグループの操作) java.lang.RuntimePermission "modifyThreadGroup"; ローカルのアプリケーションの起動 (アプリケーションの起動コマンドが絶対パスで指定されている場合) java.io.FilePermission "{cmd}","execute"; (相対パスで指定されている場合) java.io.FilePermission "-","execute"; ローカルのライブラリ(DLL)のロード java.lang.RuntimePermission "loadLibrary.{lib}"; システムプロパティへのアクセス (System.getProperties()を使用する場合) java.util.PropertyPermission "*","read,write"; (System.getProperty(String key)を使用する場合) java.util.PropertyPermission "{key}","read,write"; ウィンドウの作成 java.awt.AWTPermission "showWindowWithoutWarningBanner"; アプレットからのクラスのロード java.lang.RuntimePermission "getClassLoader"; 印刷ジョブへのアクセス java.lang.RuntimePermission "queuePrintJob"; クリップボードへのアクセス java.awt.AWTPermission "accessClipboard"; AWTのイベントキューへのアクセス java.awt.AWTPermission "accessEventQueue"; クラスローダの操作 java.lang.RuntimePermission "getClassLoader"; ブラウザの終了 ※JBKプラグインでは、アプレットがブラウザを終了させることを許可していません。 注意 V3.0L20以前のJBKプラグインから移行する場合 JBKプラグインはV3.0L20でセキュリティチェック機能の強化を行っています。従来のJBKプラグインでも実運用上の問題はありません が、V3.0L20からJBKプラグインはさらに厳密なセキュリティチェックを行うようにしています。ただし、このために以下のような現象が発 生することがあります。 ・ アプレットからプロキシ経由でURL接続を行う際、そのURLのホストがDNS登録されていない場合に、接続までに数分かかる場合 がある。 このような現象が実運用で問題になる場合には、jbkplugin.propertiesに“jbk.plugin.security.strict=false”と記述して、セキュリティチェッ ク機能の強化を解除してください。この設定を行うと、JBKプラグインは従来どおりのセキュリティチェックを行います。 また、セキュリティチェック機能の強化により、従来アプレットから他ホスト(アプレットをダウンロードしたホスト以外)にネットワーク接続で きていたものがセキュリティエラーとなる場合があります。このような場合には、ポリシーファイルを用いて、そのアプレットに “java.net.SocketPermission”などネットワーク接続を行うための適切な権限を設定してください。 2.3.4 プロキシの設定 JBKプラグインが使用するHTTPプロキシの設定方法を説明します。 - 17 - ローカルエリアネットワーク(LAN)の構築の際には、外部のネットワークからの侵入を防ぐためにファイアウォールを設けることがありま す。このような場合、LANの外にあるWebサーバからアプレットをダウンロードするには、HTTPプロキシサーバを中継してダウンロード する必要があります。このような場合には、以下の説明に従ってHTTPプロキシを設定してください。 プロキシの設定が不要な場合 以下の場合は、プロキシの設定を行う必要はありません。 ・ ブラウザのプロキシ設定と同じ設定を使用する場合 JBKプラグインはデフォルト状態では、JBKプラグインはブラウザのプロキシ設定をそのまま使用します。 ・ アプレットのダウンロード方式を、ブラウザの機能を用いる方式に指定してある場合 この場合は、JBKプラグインによるプロキシの設定は無効となり、代わりにブラウザに設定されているプロキシが使用されます。詳細 は、“2.3.6 アプレットのダウンロード方式の指定”を参照してください。 プロキシの設定方法 使用するプロキシの設定をデフォルト状態から変更する必要がある場合には、jbkplugin.propertiesの中に以下の行を記述してくださ い。 jbk.plugin.proxy.enable=<HTTPプロキシを使用する/しない> jbk.plugin.proxy.http.host=<HTTPプロキシのホスト名> jbk.plugin.proxy.http.port=<HTTPプロキシのポート番号> jbk.plugin.proxy.override=<HTTPプロキシを使用しないアドレスのリスト> 各プロパティには、以下の情報を設定します。 ・ jbk.plugin.proxy.enable HTTPプロキシを使用するかどうかを指定するプロパティです。<HTTPプロキシを使用する/しない>には、以下のどちらかを記述 します。 true アプレットのダウンロード時に、HTTPプロキシサーバを使用します。 false アプレットのダウンロード時に、HTTPプロキシサーバを使用しません。 falseに設定した場合には、以下の3つのプロパティの設定は無効になります。 ・ jbk.plugin.proxy.http.host HTTPプロキシのホスト名を指定するプロパティです。<HTTPプロキシのホスト名>には、HTTPプロキシサーバのホスト名またはIP アドレスを指定します。 ・ jbk.plugin.proxy.http.port HTTPプロキシのポート番号を指定するプロパティです。<HTTPプロキシのポート番号>には、HTTPプロキシサーバが使用する ポート番号を指定します。 ・ jbk.plugin.proxy.override HTTPプロキシを使用せずに接続するアドレスのリストを指定するプロパティです。Webサーバのアドレスがこのリストに記述されて いる場合には、JBKプラグインはHTTPプロキシサーバを経由せずに、Webサーバから直接アプレットをダウンロードします。<HTTP プロキシを使用しないアドレスのリスト>には、HTTPプロキシを使用しないアドレスを以下の説明に従って記述してください。 - アドレスの記述には、ホスト名、ドメイン名あるいはIPアドレスが使用できます。 - ホスト名、ドメイン名あるいはIPアドレスの記述には、'*'(ワイルドカード)が使用できます。 - 複数のアドレスを記述する場合には、アドレスとアドレスの間に'|'を入れてください。 - 18 - 例 プロキシの設定例 jbk.plugin.proxy.enable=true jbk.plugin.proxy.http.host=proxy.fujitsu.com jbk.plugin.proxy.http.port=8080 jbk.plugin.proxy.override=*.fujitsu.com|*.foo.co.jp ・ デフォルト状態では、jbkplugin.properties内のプロキシの設定行はコメント行('#'の付いた行)になっています。プロキシの設定を行 う場合には、行の先頭の'#'を取り除いてください。 ・ <HTTPプロキシのホスト名>、<HTTPプロキシのポート番号>および<HTTPプロキシを使用しないアドレスのリスト>に記述する内容 は、LAN環境の設定により異なります。プロキシ設定に記述する内容は、ネットワーク管理者にお問い合わせください。 ブラウザのプロキシ除外リストについて Javaのプロキシ除外リストでは、".*.*" という表記は、ワイルドカードとして認識せず、プロキシを利用した接続を行います。以下の場合 で、ブラウザのプロキシ設定の除外リストに".*.*"を使用している場合は、".*"と記載してください。 ・ ブラウザのプロキシ設定と同じ設定を使用する ・ jbkplugin.propertiesで、jbk.plugin.proxy.enable=trueかつjbk.plugin.proxy.overrideを指定している 2.3.5 Javaコンソールの表示 JBKプラグインのJavaコンソールを説明します。 JBKプラグインは、アプレットのデバッグ時に有効な情報を表示するJavaコンソールを提供しています。Javaコンソールには、以下の情 報が表示されます。 ・ アプレット実行時に、標準出力(System.out)あるいは標準エラー出力(System.err)に出力された文字列 ・ AppletContextクラスのshowStatusメソッドを実行して、ブラウザのステータスウィンドウに表示された文字列 ・ アプレット実行時に発生した例外を表すメッセージ 図2.2 JBKプラグインのJavaコンソール Javaコンソールには、以下の2つのボタンがあります。 ・ クリア:表示されている内容をすべて消去します。 ・ 閉じる:Javaコンソールを非表示にします。 また、Javaコンソール上で以下のキーを押下することにより、Javaコンソール上に情報を出力することができます。 - 19 - C Javaコンソールのクリア G ガベージコレクションの実行 H キーボードヘルプを表示 M メモリ使用量の表示 S システムプロパティの出力 T スレッドリストの出力 0 JBKプラグインのトレース出力(クラスのロードおよびHTTPプロトコルの接続状態などをトレースします)の切り替え Ctrl+Shift+E AWTEventのトレース出力(FocusEvent、KeyEvent、MouseEvent、およびWindowEventをトレースします)の切り替え Javaコンソールの表示/非表示の設定方法 Javaコンソールは、JBKプラグインインストール時のデフォルト状態(初期状態)では非表示になっています。JBKプラグイン起動時の Javaコンソールの表示/非表示を設定する場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.console.visible=<Javaコンソールの表示/非表示> <Javaコンソールの表示/非表示>には、以下のどちらかを設定してください。 true JBKプラグインの起動時に、Javaコンソールを表示します。 false JBKプラグインの起動時に、Javaコンソールを表示しません。(デフォルト) Javaコンソールを非表示にした後に再表示したいときには、アプレットにフォーカスがある状態で[Ctrl]+[Alt]+[Insert]キーを押下しま す。 アプレットからのJavaコンソールの表示/非表示の制御方法 JBKプラグインが提供するPluginAppletContextインタフェースを使うと、アプレットからJavaコンソールの表示/非表示の制御を行うこと ができます。PluginAppletContextインタフェースのAPIは、以下のとおりです。 ・ インタフェース名 - com.fujitsu.jbk.plugin.browser.PluginAppletContext (extends java.applet.AppletContext) ・ メソッド: - setConsoleVisible プラグインのコンソールの表示/非表示を切り替えます。 public abstract void setConsoleVisible(boolean visible) visible true:Javaコンソールを表示します。 - 20 - false:Javaコンソールを非表示にします。 - isConsoleVisible プラグインのコンソールの表示/非表示の状態を返します。 public abstract boolean isConsoleVisible() 戻り値 Javaコンソールが表示されている時はtrue、非表示の時はfalseを返します。 PluginAppletContextインタフェースのクラスファイルは、JBKプラグインの開発用jarファイルに格納されています(JBKをインストールし たフォルダ配下の“classes\jbkstd.jar”になります)。PluginAppletContextインタフェースを使用したアプレットのクラスをコンパイルする場 合は、クラスパスにJBKプラグインの開発用jarファイルが含まれていることを確認してください。 PluginAppletContextは、AppletクラスのgetAppletContext()メソッドを呼び出して取得できます。したがって、例えば以下のようなアプレッ トを作成し、このアプレットを実行するためのタグをHTMLファイルに記述しておくと、このアプレットをJavaコンソール表示用のボタンと して使用できます。 表2.2 Javaコンソール表示ボタンを持つアプレット import java.applet.*; import java.awt.*; import java.awt.event.*; import com.fujitsu.jbk.plugin.browser.PluginAppletContext; /** * コンソール表示用のボタンを持つアプレット */ public class ConsoleButton extends Applet implements ActionListener { /** * アプレットの初期化 */ public void init() { /* Javaコンソール表示のためのボタンの作成 */ setLayout(new BorderLayout()); Button b = new Button("コンソールの表示"); b.addActionListener(this); add(b); } /** * ボタンが押されたときの処理。Javaコンソールを表示する。 */ public void actionPerformed(ActionEvent e) { // AppletContextを取得する。 // JBKプラグインを使用しているときには、PluginAppletContextが返る。 AppletContext context = getAppletContext(); try { // 取得したAppletContextがPluginAppletContextかどうかを確認する。 if (context instanceof PluginAppletContext) { PluginAppletContext plgContext = (PluginAppletContext)context; // Javaコンソールが表示されていない場合は、表示する。 if (!plgContext.isConsoleVisible()) { plgContext.setConsoleVisible(true); } } } catch (Throwable ignore) { /* この処理で発生した例外に対しては何も行わない */ } } } - 21 - 2.3.6 アプレットのダウンロード方式の指定 JBKプラグインがアプレットをダウンロードする際の方式とその指定方法を説明します。 JBKプラグインでは、以下の3種類のアプレットをダウンロードする方式を提供しています。 ・ Javaのネットワーク通信クラスを用いる方式 ・ ブラウザの機能を用いる方式 ・ 上記2つの混合方式 ブラウザの機能を用いる方式では、ブラウザの設定をそのまま使用してアプレットのダウンロードを行うことができます。ダウンロードした ファイルのローカルキャッシュ機能など、ブラウザが持つ機能を有効に活用したい場合には、ブラウザの機能を用いるダウンロード方 式の使用をお勧めします。 ダウンロード対象となるファイル JBKプラグインがWebサーバからダウンロードするファイルの種類は、以下のとおりです。 ・ アプレットの実行に必要なクラスファイル(*.class) ・ アプレットの実行に必要なJARファイル(*.jar) HTMLファイルでJBKプラグイン用のタグの記述にARCHIVE属性を指定している場合には、そこに指定されたJARファイルがダウ ンロードされます。ARCHIVE属性の指定方法は、“2.2.3 HTMLファイルの作成”を参照してください。 ・ アプレットで使用するプロパティファイル(*.properties) ・ アプレットで使用する画像ファイル(GIFファイル、JPEGファイルなど) ・ その他、アプレットがJavaのURLクラスを用いてWebサーバからファイルを取得している場合には、そのファイルのダウンロードも JBKプラグインが行います。 本節で説明するアプレットのダウンロード方式の指定は、これらのファイルに対して有効となります。 注意 以下のファイルは、ブラウザがダウンロードを行いますので、JBKプラグインのダウンロード対象ファイルではありません。 ・ JBKプラグイン用のタグを記述したHTMLファイル ・ そのHTMLファイルに貼り付けられた画像ファイル アプレットのダウンロード方式の指定方法 アプレットのダウンロード方式を指定する場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.protocol.http=<アプレットのダウンロード方式> <アプレットのダウンロード方式>には、以下のキーワードのうちのどれかを指定します。 java Javaのネットワーク通信クラスを用いてダウンロードを行います。 ダウンロードしたファイルはローカルディスクにキャッシュされません。また、使用されるHTTPプロキシは、JBKプラグインのプロキシ 設定に従います(“2.3.4 プロキシの設定”を参照してください)。 native ブラウザの機能を用いてダウンロードを行います。 - ダウンロードされたファイルは、ブラウザの機能を用いてローカルディスクにキャッシュされ、次回ダウンロード時にはキャッシュ されたファイルが使用されます。キャッシュファイルの格納フォルダの設定、キャッシュの更新タイミングの設定は、ブラウザの設 定がそのまま使用されます。これらの設定方法の詳細は、使用するブラウザのマニュアルを参照してください。 - 22 - - ダウンロード時に使用されるHTTPプロキシの設定も、ブラウザの設定がそのまま使用されます。設定方法の詳細は、使用する ブラウザのマニュアルを参照してください。 hybrid javaとnativeの混合方式です。ダウンロード対象となるファイルのうち、クラスファイルおよびJARファイルはブラウザの機能を用いて ダウンロードを行います。その他のファイルは、Javaのネットワーク通信クラスを用いてダウンロードを行います。なお、JBKプラグイ ンインストール時のデフォルト状態(初期状態)では、アプレットのダウンロード方式はhybridに設定されています。 注意 ・ 以前のバージョンのJBKプラグインは、ブラウザの機能を用いたアプレットのダウンロードをサポートしていません。以前のバージョ ンと同じ動作にしたい場合には、“jbk.plugin.protocol.http”をjavaに指定してください。 ・ “hybrid”または“native”を指定した場合、java.net.URLConnectionクラスで接続したURLのファイルがブラウザにキャッシュされてい ると、以下の現象が発生します。 - getHeaderFieldDateおよびgetDateメソッドでは、0が返されます。 - getHeaderFieldおよびgetHeaderFieldKeyメソッドでは、Server、Dateフィールドが返されません。 例 アプレットのダウンロード方式の指定例 jbk.plugin.protocol.http=native 2.3.7 HTTPSプロトコルの使用 JBKプラグインによるHTTPSプロトコルの使用を説明します。 HTTPSプロトコルとは、SSL(Secure Sockets Layer)対応のWebサーバとHTTP通信を行う際に指定するプロトコルです。 SSLとは、ネットワーク上でデータを暗号化して送受信する技術の1つで、現在、多くのWebサーバ/ブラウザがSSLを用いたHTTP通 信をサポートしています。SSLを用いたHTTP通信では、ネットワーク上を流れるデータが暗号化されるので、第三者にデータを解析さ れる恐れが減り、セキュリティ上より安全なデータ転送が行えるようになります。 SSL対応のWebサーバとHTTP通信を行う際には、一般的にはURLの先頭に“http://”の代わりに“https://”と指定します。JBKプラグイ ンではこのHTTPSプロトコルをサポートし、SSL対応のWebサーバからのアプレットのダウンロードを可能にしています。 HTTPSプロトコル使用時にダウンロード対象となるファイル JBKプラグインがWebサーバからダウンロードするファイルの種類は以下のとおりです。これは通常のHTTP通信の場合もHTTPSプロト コルによる通信の場合も同じです(“2.3.6 アプレットのダウンロード方式の指定”参照)。 ・ アプレットの実行に必要なクラスファイル(*.class) ・ アプレットの実行に必要なJARファイル(*.jar) ・ アプレットで使用するプロパティファイル(*.properties) ・ アプレットで使用する画像ファイル(GIFファイル、JPEGファイルなど) ・ その他、アプレットがJavaのURLクラスを用いてWebサーバからファイルを取得している場合には、そのファイルのダウンロードも JBKプラグインが行います。 以下で説明するHTTPSプロトコルによるアプレットのダウンロード方式の指定は、これらのファイルに対して有効となります。 HTTPSプロトコルによるアプレットのダウンロード方式の指定 HTTPSプロトコルによるアプレットのダウンロード方式を指定する場合には、jbkplugin.propertiesの中に以下の行を記述してください。 - 23 - jbk.plugin.protocol.https=<HTTPSプロトコルによるアプレットのダウンロード方式> <HTTPSプロトコルによるアプレットのダウンロード方式>には、以下のキーワードのうちのどれかを指定します。 java Javaのネットワーク通信クラスを用いてダウンロードを行います。JSSE(Java Secure Socket Extension)を使用してHTTPSプロトコルに よるダウンロードを行います。 native ブラウザの機能を用いてHTTPSプロトコルによるダウンロードを行います。 - ダウンロードされたファイルは、ブラウザの機能を用いてローカルディスクにキャッシュされ、次回ダウンロード時にはキャッシュ されたファイルが使用されます。HTTPSプロトコルでダウンロードされたファイルをキャッシュするかどうかの設定、キャッシュファ イルの格納フォルダの設定、キャッシュの更新タイミングの設定は、ブラウザの設定がそのまま使用されます。これらの設定方 法の詳細は、使用するブラウザのマニュアルを参照してください。 - ダウンロード時に使用されるHTTPSプロキシの設定も、ブラウザの設定がそのまま使用されます。設定方法の詳細は、使用す るブラウザのマニュアルを参照してください。 hybrid ダウンロード対象となるファイルのうち、クラスファイルおよびJARファイルはブラウザの機能を用いてHTTPSプロトコルによるダウン ロードを行います。その他のファイルは、HTTPSプロトコルによるダウンロードができません。なお、JBKプラグインインストール時の デフォルト状態(初期状態)では、HTTPSプロトコルによるアプレットのダウンロード方式はhybridに設定されています。 JSSE(Java Secure Socket Extension) によりHTTPSプロトコルの通信がサポートされています。そのため、hybridを指定した場合にク ラスファイルおよびJARファイル以外のファイルに対してもHTTPSプロトコルによるダウンロードが可能になっています。 注意 ・ 使用するブラウザでSSLを無効にする設定を行っている場合には、“jbk.plugin.protocol.https”にnativeあるいはhybridを指定して もHTTPSプロトコルによるアプレットのダウンロードはできません。HTTPSプロトコルを使用する場合には、あらかじめブラウザの設 定でSSLを有効にしておいてください。SSLの有効/無効の設定方法は、使用するブラウザのマニュアルを参照してください。 ・ “hybrid”または“native”を指定した場合、java.net.URLConnectionクラスで接続したURLのファイルがブラウザにキャッシュされてい ると、以下の現象が発生します。 - getHeaderFieldDateおよびgetDateメソッドでは、0が返されます。 - getHeaderFieldおよびgetHeaderFieldKeyメソッドでは、Server、Dateフィールドが返されません。 例 HTTPSプロトコルによるアプレットのダウンロード方式の指定例 jbk.plugin.protocol.https=native 2.3.8 アプレットのダウンロード状態の表示 JBKプラグインが行うアプレットのダウンロード状態の表示を説明します。 アプレットのダウンロード状態の表示 JBKプラグインは、アプレットのクラスのダウンロードが開始されてからアプレットの実行が開始されるまでの間、アプレットの表示領域の 左上に以下のメッセージを表示します。 ・ [アプレットのロード中です...] アプレットのクラスのロード中を表すメッセージです。 - 24 - ・ [アプレットの初期化中です...] アプレットのinit()メソッドの実行中を表すメッセージです。 また、アプレットのクラスのロード中にエラーが発生した場合には、JBKプラグインは以下のメッセージを表示します。 ・ [エラー:アプレットのロードに失敗しました。] 発生したエラーの詳細は、JBKプラグインの“図2.2 JBKプラグインのJavaコンソール”に表示されます。 アプレットのダウンロード状態の表示/非表示の指定方法 アプレットのダウンロード状態の表示/非表示を指定する場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.applet.showmessage=<ダウンロード状態の表示/非表示> <ダウンロード状態の表示/非表示>には、以下のどちらかを設定してください。 true アプレットのダウンロード状態を表示します。 false アプレットのダウンロード状態を表示しません。 注意 以前のバージョンのJBKプラグインは、アプレットのダウンロード状態を表示しません。以前のバージョンと同じ動作にしたい場合には、 “jbk.plugin.applet.showmessage”をfalseに設定してください。 2.3.9 Java VMの先行起動 JBKプラグインを使用して、アプレットを実行せずにJava VMだけを先行起動する方法を説明します。 ブラウザ上でアプレットを実行する場合には、一般的にはアプレットの初回実行時にJava VMが起動されます。Java VMの起動には数 秒~数十秒かかります。その間ブラウザがユーザの操作を受け付けなくなり、Java VMの起動完了までユーザが待たされてしまう場合 もあります。このような状況に対処するために、JBKプラグインではHTMLファイルの記述の仕方により、アプレットを実行せずにJava VMのみを起動する機能を提供しています。この機能を用いると、アプレットを起動する前に、ユーザを待たせることなくJava VMだけ を先行起動しておくことが可能になります。 “Java VMのみの起動”の指定方法 JBKプラグインを用いて、アプレットを実行せずにJava VMのみを起動する場合には、JBKプラグイン用のHTMLファイルに指定するア プレットの名前(NAME属性)に“@JAVAVMONLY”と記述してください。JBKプラグイン用のHTMLファイルの記述方法は、“2.2.3 HTMLファイルの作成”を参照してください。 NAME属性に“@JAVAVMONLY”と指定されている場合には、JBKプラグインはその箇所のCODE属性の指定を無効とし、バックグ ラウンドでJava VMの起動のみを行います。 例 Java VMのみの起動の指定例 JBKプラグインを用いて、Java VMのみの起動を行う場合には、HTMLファイルに以下の記述を入れてください。 <OBJECT CLASSID="CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67" WIDTH=1 HEIGHT=1> <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> <PARAM NAME="NAME" VALUE="@JAVAVMONLY"> </OBJECT> - 25 - ポイント アプレットの必須属性の指定 ・ NAME属性に“@JAVAVMONLY”と指定した場合には、その箇所にはCODE属性を指定する必要はありません。 ・ NAME属性に“@JAVAVMONLY”と指定した場合、その部分はブラウザの画面上にWIDTH属性とHEIGHT属性で指定された 幅と高さを持つ長方形として表示されます。この長方形が画面上で目立たないように、WIDTH属性とHEIGHT属性をそれぞれ1に 指定しておくことをお勧めします。 Java VMの先行起動 上記の“Java VMのみの起動”の指定を使用すると、Java VMの先行起動が可能になります。Java VMの先行起動を行うために必要な 手順は、以下のとおりです。 1. Java VMの先行起動を行うHTMLファイルの作成 a. まず、アプレットを実行するHTMLファイルとは別に、アプレットの実行に先立って呼び出すHTMLファイルを作成します。 このHTMLファイルには、アプレットの実行前に行う処理を記述します。アプレットの実行前に行うことができる処理の例を、 以下に示します。 - アプリケーションのタイトルページの表示 - お知らせの表示 - ユーザからの何らかの入力要求 b. 次に、このHTMLファイルに上記の“Java VMのみの起動”の指定を記述します。このHTMLファイルが、Java VMの先行 起動を行うHTMLファイルになります。 2. Java VMの先行起動を行うHTMLファイルの実行 a. ブラウザを起動し、Java VMの先行起動を行うHTMLファイルを最初に呼び出します。ブラウザの画面上では、HTMLファ イルに記述したアプレット実行前の処理が実行されます。この間に、JBKプラグインはバックグラウンドでJava VMを起動し ます。したがって、Java VMの起動がブラウザの画面上の処理を妨げることはありません。 b. アプレット実行前の処理が終了したら、次にアプレットを実行するHTMLファイルを呼び出します。JBKプラグインによるJava VMの起動が完了している場合には、すぐにアプレットのダウンロードが開始されます。ユーザがJava VMの起動完了を待 つ必要はありません。 注意 Java VMの先行起動を行うHTMLファイルには、JBKプラグイン用のアプレット実行の記述を含めないようにしてください。HTMLファイ ルにアプレット実行のための記述が含まれている場合には、そのHTMLファイル内にあるJava VMの先行起動の指定は無効になりま す。 例 Java VMの先行起動を行うHTMLファイルの例 Java VMの先行起動を行うHTMLファイルの記述例を以下に示します。 <HTML> <HEAD> <TITLE>Java VMの先行起動を行うHTMLファイルの例</TITLE> </HEAD> <BODY> <!-この部分には、アプレットの実行に先立って行うことのできる処理を記述します。 - 26 - (例) ・アプリケーションのタイトルページの表示 ・お知らせの表示 ・ユーザからの何らかの入力要求 --> <!-以下は、Java VMのみの起動のための記述です。 ブラウザの画面上には、この部分は画面の背景色と同色で表示されます。 --> <OBJECT CLASSID="CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67" WIDTH=1 HEIGHT=1> <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> <PARAM NAME="NAME" VALUE="@JAVAVMONLY"> </OBJECT> </BODY> </HTML> 2.3.10 アプレットのアクティブ/非アクティブ状態の通知 JBKプラグインを使用した場合のアプレットのアクティブ状態とその通知を説明します。 ブラウザ上でアプレットを実行する場合には、1つのブラウザウィンドウ上に複数のアプレットを置いて実行することができます。このた め、ブラウザウィンドウのアクティブ状態と各アプレットのアクティブ状態は必ずしも一致しません。 JBKプラグインでは、アプレットのアクティブ状態を独自に定め、そのアクティブ状態が切り替わるタイミングをアプレットに通知する機能 を提供しています。複数のアプレットからなるシステムで、アプレットごとに動作環境を切り替えたい場合などに、この通知を使用すると 便利です。 アプレットのアクティブ/非アクティブ状態 JBKプラグインは、以下のいずれかの状態になった場合にアプレットがアクティブ状態になったものとみなします。 ・ アプレットの実行が開始された直後(start()メソッドが呼び出された直後) ・ アプレット上の部品にキーボードフォーカスが設定された場合 ・ アプレット上でマウスがクリックされた場合 また、以下のいずれかの状態の場合に、アプレットが非アクティブ状態になったとみなします。 ・ アプレットの実行が停止した後(stop()メソッドが呼び出された後) ・ アプレット上の部品から、そのアプレット以外のウィンドウにキーボードフォーカスが移った場合 ・ アプレットを表示しているブラウザのウィンドウが非アクティブになった場合 ・ 他のアプレットがアクティブな状態になった場合 アクティブ/非アクティブ状態の通知イベント JBKプラグインは、アプレットのアクティブ状態が切り替わったときに、PluginAppletEventをアプレットに通知します。PluginAppletEvent クラスはJBKプラグインが提供するイベントクラスです。 PluginAppletEventクラスのAPIは以下のとおりです。 ・ クラス名 - com.fujitsu.jbk.plugin.browser.PluginAppletEvent (extends java.awt.AWTEvent) ・ 定数 - PLUGINAPPLET_ACTIVATE アプレットがアクティブ状態になったことを表すイベントIDです。 - 27 - public final static int PLUGINAPPLET_ACTIVATE - PLUGINAPPLET_DEACTIVATE アプレットが非アクティブ状態になったことを表すイベントIDです。 public final static int PLUGINAPPLET_DEACTIVATE ・ コンストラクタ - PluginAppletEvent public PluginAppletEvent(Object source, int id) source イベントが発生したアプレット id 発生したイベントの種類を表すID ポイント 通知条件 - アプレットに最初に通知するのはPLUGINAPPLET_ACTIVATEです。 - 非アクティブ状態のウィンドウのアプレットが開始されたときは、ウィンドウが非アクティブ状態であるためPluginAppletEventは 通知しません。 非アクティブ状態のウィンドウのアプレットが開始されたときでも、PLUGINAPPLET_ACTIVATEのPluginAppletEventを通知す るためには、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.sw.event.initial_active=true アクティブ/非アクティブ状態の通知を受け取る方法 アプレットがJBKプラグインからのアクティブ/非アクティブ状態の通知を受け取って処理を行うためには、以下の手順に従ってくださ い。 1. PluginAppletEventを受け取るためのイベントリスナを作成します。 PluginAppletEvent を 受 け 取 る た め の イ ベ ン ト リ ス ナ は 、 PluginAppletListener イ ン タ フ ェ ー ス を 実 装 し て 作 成 し ま す。 PluginAppletListenerインタフェースはJBKプラグインが提供するイベントリスナインタフェースです。 PluginAppletEventインタフェースのAPIは以下のとおりです。 - インタフェース名 - com.fujitsu.jbk.plugin.browser.PluginAppletListener (extends java.util.EventListener) - メソッド - eventOccurred JBKプラグインがアプレットに通知するイベントを受け取ります。 public abstract void eventOccurred(PluginAppletEvent event) event アプレットに通知されたイベント - 28 - 2. PluginAppletContextクラスを用いて、作成したイベントリスナを登録します。 作成したイベントリスナは、PluginAppletContextインタフェースのメソッドを用いて登録します。イベントリスナ登録/登録解除お よび、アプレットを明示的にアクティブにするためのAPIは以下のとおりです。 - インタフェース名 - com.fujitsu.jbk.plugin.browser.PluginAppletContext (extends java.applet.AppletContext) - メソッド - addPluginAppletListener JBKプラグインからのイベント通知を受け取るリスナを登録します。 public abstract void addPluginAppletListener(PluginAppletListener listener) listener 登録するイベントリスナ - removePluginAppletListener JBKプラグインからのイベント通知を受け取るリスナを登録します。 public abstract void removePluginAppletListener(PluginAppletListener listener) listener 登録を解除するイベントリスナ - activateApplet 引数で渡したアプレットがこのコンテキストに属する場合、アプレットをアクティブな状態にします。このコンテキストに属さ ないアプレットの場合には何もしません。 public abstract void activateApplet(Applet applet) applet アクティブな状態にするアプレット PluginAppletEventクラス、PluginAppletListenerインタフェースおよび、PluginAppletContextインタフェースのクラスファイルは、JBKプラ グインの開発用jarファイルに 格納されています(JBKをインストールしたフォルダ配下の“classes\jbkstd.jar”になります)。これらのクラス およびインタフェースを使用したアプレットのクラスをコンパイルする場合は、クラスパスにJBKプラグインの開発用jarファイルが含まれ ていることを確認してください。 例 アクティブ/非アクティブ状態の通知に対する処理を行うアプレットの実装例 PluginAppletContextは、AppletクラスのgetAppletContext()メソッドを呼び出して取得できます。 import java.applet.*; import java.awt.*; import java.awt.event.*; import com.fujitsu.jbk.plugin.browser.PluginAppletEvent; import com.fujitsu.jbk.plugin.browser.PluginAppletListener; import com.fujitsu.jbk.plugin.browser.PluginAppletContext; /** * アクティブ/非アクティブ状態の通知を受け取るアプレット * このサンプルでは、アプレットにPluginAppletListenerを実装して、 * アプレットが直接イベントを受け取るようにしている。 - 29 - */ public class ActivateSample extends Applet implements PluginAppletListener { /** * アプレットの初期化 */ public void init() { setBackground(Color.lightGray); // AppletContextを取得する。 // JBKプラグインを使用しているときには、PluginAppletContextが返る。 AppletContext context = getAppletContext(); try { // 取得したAppletContextがPluginAppletContextかどうかを確認する。 if (context instanceof PluginAppletContext) { PluginAppletContext plgContext = (PluginAppletContext)context; // JBKプラグインからのイベントを受け取るリスナを登録する。 plgContext.addPluginAppletListener(this); } } catch (Throwable ignore) { /* この処理で発生した例外に対しては何も行わない */ } } /** * JBKプラグインからイベントが通知されたときの処理。 * このサンプルでは、アクティブ/非アクティブ状態の切り替わりに応じて * アプレットの色を変更している。 */ public void eventOccurred(PluginAppletEvent e) { switch (e.getID()) { case PluginAppletEvent.PLUGINAPPLET_ACTIVATE: // アプレットがアクティブ状態になった場合 setBackground(Color.red); repaint(); break; case PluginAppletEvent.PLUGINAPPLET_DEACTIVATE: // アプレットが非アクティブ状態になった場合 setBackground(Color.lightGray); repaint(); break; default: break; } } } ポイント ブラウザアクティブ時の強制アクティブ化 ブラウザがアクティブ状態になったときにアプレットをアクティブ状態に設定することができます。jbkplugin.propertiesの中に以下の行を 記述してください。 jbk.plugin.sw.fbc.force_activate=<ブラウザアクティブ時にアプレットをアクティブ化させる/アクティブ化しない> <ブラウザアクティブ時にアプレットをアクティブ化させる/アクティブ化しない>には、以下のどちらかを設定してください。 - 30 - true ブラウザアクティブ時にアプレットをアクティブ化させます。 false ブラウザアクティブ時にアプレットをアクティブ化しません。 デフォルト状態では、jbk.plugin.sw.fbc.force_activateの値はfalseに設定されています。 trueを設定し、ブラウザのウィンドウに複数のア プレットが表示されている場合、どのアプレットがアクティブ化されるかは保証されません。 なお、Internet Explorer 7以降は、ブラウザがアクティブ状態になった時には、直前にフォーカスを持っていた部品にフォーカスが戻さ れるため、上記プロパティの設定は基本的には不要です。 2.3.11 アプレットへの終了問合せ JBKプラグインが提供するアプレットへの終了問合せ機能を説明します。 JBKプラグインは、ユーザがブラウザのウィンドウを閉じようとしたときに、そのウィンドウ上で実行しているアプレットに対して終了の問合 せを行う機能を提供しています。この機能を使用するアプレットは、JBKプラグインからの終了問合せに対して、終了の許可/不許可 を返答することができます。 それぞれの場合の動作は以下のようになります。 ・ 終了を許可した場合には、JBKプラグインはアプレットの終了処理を行った後にブラウザのウィンドウを閉じます。 ・ 終了を許可しなかった場合には、ブラウザのウィンドウを閉じる処理はキャンセルされ、アプレットの実行はそのまま継続します。 この機能を用いると、アプレットがある特定の処理(例えばデータベースへの接続処理など)を行っている場合に、ブラウザの終了を一 時的に抑止することが可能になります。 アプレットへの終了問合せ機能 アプレットからJBKプラグインの終了問合せ機能を使用するには、アプレットにPluginAppletCallbackインタフェースを実装してください。 PluginAppletCallbackインタフェースはJBKプラグインが提供するインタフェースです。PluginAppletCallbackインタフェースのAPIは以 下のとおりです。 ・ インタフェース名: - com.fujitsu.jbk.plugin.browser.PluginAppletCallback (extends java.lang.Object) ・ メソッド: - destroyRequested ブラウザのウィンドウが閉じるときに、アプレットに終了を問い合わせるために呼び出されます。 public abstract boolean destroyRequested() 返り値 終了を許可する場合はtrueを返してください。許可しない場合はfalseを返してください。 - destroyCancelled ブラウザのウィンドウを閉じる処理がキャンセルされたときに呼び出されます。 public abstract void destroyCancelled() 例 終了問合せ機能を使用するアプレットの例 import java.applet.*; - 31 - import com.fujitsu.jbk.plugin.browser.PluginAppletCallback; /** * 終了問い合わせを使用するアプレット */ public class DestroySample extends Applet implements PluginAppletCallback { /** * アプレットの終了問い合わせ時に呼び出されるメソッド */ public boolean destroyRequested() { // アプレットの終了を許可しない場合にはfalseを返してください。 if (/* アプレットの終了を許可しない場合 */) { return false; } // アプレットの終了を許可する場合にはtrueを返してください。 return true; } /** * アプレットの終了が不許可となり、ブラウザのウィンドウを閉じる処理が * キャンセルされたときに呼び出されるメソッド */ public void destroyCancelled() { // ブラウザのウィンドウを閉じる処理がキャンセルされたときに // 何か処理を行う必要がある場合には、ここに記述してください。 } } 注意 destroyRequested()メソッドおよびdestroyCancelled()メソッドの中では、ダイアログ表示およびキーボードやマウ ス入力などのGUI操作を伴う処理を行わないようにしてください。これらの処理を行うと、ブラウザが処理を受け付けなくなる場合があり ます。 複数のアプレットが実行されている場合 ブラウザのウィンドウ上で複数のアプレットが実行されている場合には、JBKプラグインはそれらすべてのアプレットに対して順番に destroyRequested()メソッドを呼び出します。 ・ すべてのアプレットが終了を許可した(trueを返した)場合には、ブラウザのウィンドウが閉じられます。 ・ 1つでも終了を許可しない(falseを返した)アプレットがあった場合には、JBKプラグインはその時点でdestroyRequested()メソッドの 呼出しを止め、ブラウザのウィンドウを閉じる処理をキャンセルし、その後ですべてのアプレットに対してdestroyCancelled()メソッド を呼び出します。 したがって、各アプレットは自分が終了を許可した場合にも、他のアプレットが終了を許可しなかったということを知ることができま す。 終了問合せを無効にする方法 誤ってdestroyRequested()メソッドが常にfalseを返すようなアプレットを作成した場合、ブラウザのウィンドウを閉じる処理は常にキャンセ ルされ、ブラウザが終了できなくなります。このような状態になった場合は、以下のようにしてください。 ・ JBKのクラスフォルダ(JBKをインストールしたフォルダの下の“classes”フォルダ)に、“jbkplugin.shutdown”という名前の空のファイ ルを作成してください。 このファイルがあるときには、JBKプラグインはアプレットに終了問合せを行わずに、アプレットの終了処理を呼び出してブラウザのウィ ンドウを閉じます。この方法は万が一の回避方法としてお使いください。 - 32 - なお、JBKプラグインはブラウザの終了時にjbkplugin.shutdownファイルを削除しますが、ファイルの削除権がない場合、あるいは、 jbkplugin.shutdownがフォルダとして作成されている場合には削除しません。jbkplugin.shutdownファイルが残ったままの状態では終了 問合せは常に行われなくなりますので、この方法を用いた場合には、ブラウザの終了後にjbkplugin.shutdownファイルが残っていない かどうかを確認してください。残っている場合には、手動でファイルを削除するようにしてください。 2.3.12 設定ファイルの切り替え JBKプラグインの設定ファイルの切り替え方法を説明します。 JBKプラグインの通常利用では、デフォルトの設定ファイルであるjbkplugin.propertiesに記述された内容に従った設定で動作します が、設定ファイルを複数用意し、JBKプラグイン用のHTMLファイルで呼び分けることにより、異なる設定のJBKプラグインを同一クライ アント上で動作させることが可能です。 これにより、2つのブラウザにそれぞれ異なるJava SEを指定した設定ファイルを読み込ませ、異なるバージョンのVMを使用してアプレッ トを実行するという使い方も可能となります。 JBKプラグインの設定ファイル(jbkplugin.properties)を切り替えるためには、以下の2つのファイルを作成する必要があります。 ・ 切り替え用の設定ファイル ・ 切り替え用のHTMLファイル 切り替え用の設定ファイルの作成方法 異なる設定のJBKプラグインを動作させる場合、それぞれの設定を記述したJBKプラグインの設定ファイルを個別に用意します。切替 え用の設定ファイルは、デフォルトのJBKプラグインの設定ファイル(jbkplugin.properties)をひな形として別途作成し、デフォルトのJBK プラグインの設定ファイル(jbkplugin.properties)と同じフォルダに格納します。 切り替え用のJBKプラグインの設定ファイル名は、jbkplugin.properties.xxx(xxxは任意の文字列)としてください。 JBKプラグインの設定ファイルの記述方法は“2.3 使用方法”を参照してください。 例 切り替え用の設定ファイルの作成例 例えば、Java SE 6系とJava SE 7系のJava VMを使用する設定ファイルを用意して、設定ファイルを切り替える場合には、以下のように、 それぞれにJava VMのバージョンを示す名称を付加して、設定ファイルの内容の判別を容易にするということも可能です。 ・ 6系のJava VMを使用する設定ファイルの名称を“jbkplugin.properties.16” ・ 7系のJava VMを使用する設定ファイルの名称を“jbkplugin.properties.17” ・ 1つのプロセスで使用できる設定ファイルは1種類のみです。一度設定ファイルが読み込まれると、JBKプラグインはブラウザを終 了するまで同じ設定ファイルを元にして動作します。 ・ 環境変数CLASSPATHは全ての設定ファイルで同じ値が使用されます。設定ファイルごとに異なるクラスパスを使用したい場合に は、環境変数CLASSPATHを使う代わりに、各設定ファイルのJava VMの起動オプションに“-classpath”を用いて設定ファイルごと のクラスパスを指定してください。Java VMの起動オプションの指定方法は“2.3.2 Java VMの起動オプションの指定”を参照してく ださい。 ・ 環境変数PATHも全ての設定ファイルで同じ値が使用されます。例えばアプレットがJNI呼出しを行っていて、使用するJava SEの バージョンごとにロードするDLLを変更したいような場合には、それぞれのDLLを各Java SEの以下のフォルダに格納してください。 - JDKの場合:(JDKのインストールフォルダ)\jre\bin - JREの場合:(JREのインストールフォルダ)\bin ポイント ・ 設定ファイルの末尾に付加する文字列は、ファイル名を構成できる文字および長さであれば、自由に設定することができます。 - 33 - ・ 切り替え用の設定ファイルに記述可能なプロパティは、デフォルトの設定ファイルjbkplugin.propertiesに記述可能なプロパティと同 様です。 切り替え用のHTMLファイルの作成方法 設定ファイルを切り替えるためのHTMLファイルの記述方法は、通常のアプレットを実行する場合と基本的には同様です。ただし、ア プレットに渡すパラメータを新たに1つ追加する必要があります。 新たに追加したパラメータで、アプレットに対応する設定ファイルを指定することにより、アプレットと設定ファイルを関連付けます。 ア プ レ ッ ト に 渡 す パ ラ メ ー タ の 指 定 (<OBJECT>...</OBJECT> 間 の <PARAM> タ グ に よ る 指 定 ) に 、 新 た な パ ラ メ ー タ 名 と し て “@JBKPLGPROP”を指定し、パラメータ値として設定ファイルのファイル名称の末尾に付加した文字列を指定します。 アプレット実行用の詳細なHTMLファイルの作成方法は“2.2.3 HTMLファイルの作成”を参照してください。 例 Internet Explorer用のHTMLファイルの作成例 関連付ける設定ファイルの名称がjbkplugin.properties.13の場合、HTMLファイルのアプレット実行部分の記述は次のようになります。 <OBJECT CLASSID="CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67" WIDTH=100 HEIGHT=100> <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> <PARAM NAME="@JBKPLGPROP" VALUE="13"> <PARAM NAME="NAME" VALUE="sample"> <PARAM NAME="CODE" VALUE="Sample.class"> </OBJECT> ・ 同一のHTMLファイル内に複数のアプレットを記述する場合、“@JBKPLGPROP”パラメータに指定する設定ファイルは、すべて同 じファイルとなるように記述してください。 ・ 同一ブラウザ内で、現在のアプレットに関連付けられている設定ファイルとは異なる設定ファイルが指定されているHTMLファイル を読み込ませることはできません。異なる設定ファイルが指定されているHTMLファイルを使用する場合には、現在のブラウザとは 別に新たなブラウザを起動して、そのHTMLファイルを読み込ませる必要があります。 ポイント ・ 指定するパラメータ名“@JBKPLGPROP”には、大文字小文字の区別はありません。 ・ パラメータに“@JBKPLGPROP”が指定されていない場合、従来どおりデフォルトの設定ファイルjbkplugin.propertiesを読み込んで 動作します。 2.3.13 アプレットの独自キャッシュ JBKプラグインが行うアプレットの独自キャッシュを説明します。 従来のJBKプラグインはブラウザのキャッシュ機能を用いてアプレットをキャッシュします。“2.3.6 アプレットのダウンロード方式の指定” にあるように、ブラウザの機能を用いてダウンロードされたファイルはブラウザのローカルキャッシュに保存されます。しかしブラウザの ローカルキャッシュであるため、キャッシュの容量が一杯になるとブラウザが自動的にキャッシュをクリアしてしまいます。このため、Web サーバのアプレットを更新していないにも関わらず不必要にアプレットがダウンロードされる場合があります。 このような状況を防ぐため、JBKプラグインでは新たにアプレットの独自キャッシュを用意しました。後述の設定を行うことで、アプレット はブラウザのローカルキャッシュではなくJBKプラグインの独自キャッシュに保存されるようになります。独自キャッシュに保存されたア プレットが自動的に削除されることはありませんので、Webサーバのアプレットが更新されないうちは不要なダウンロードが行われること はありません。ブラウザのキャッシュを用いて不便を感じている場合には、アプレットの独自キャッシュを使用されることをお勧めします。 - 34 - 独自キャッシュの使用可能条件 JBKプラグインの独自キャッシュは以下の条件においてのみ使用可能です。 ・ ダウンロードに使用するプロトコル:HTTPプロトコル、HTTPSプロトコル ・ 独自キャッシュの対象ファイル(デフォルト状態) - Webサーバからダウンロードされたクラスファイル - HTMLファイルのJBKプラグイン用のタグのARCHIVE属性に記述されているJARファイル JBKプラグイン用のタグの記述方法は“2.2.3 HTMLファイルの作成”を参照してください。 - java.applet.AppletクラスのgetImage()メソッドを用いてWebサーバからダウンロードされたイメージファイル(GIF、JPEGなど) この3種類以外のファイルを独自キャッシュの対象にしたい場合には、アプリケーションからJBKプラグインのキャッシュAPIを呼び出す 必要があります。詳しくは“JBKプラグインのキャッシュAPI”を参照してください。 独自キャッシュの設定方法 JBKプラグインの独自キャッシュを使用する場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.www.plugin_cache.enable=<独自キャッシュを使用する/しない> jbk.plugin.www.plugin_cache.dir=<独自キャッシュの保存フォルダ> jbk.plugin.www.plugin_cache.dir.freespace=<独自キャッシュの保存フォルダの空き容量指定> jbk.plugin.www.plugin_cache.update=<独自キャッシュの更新条件> jbk.plugin.www.plugin_cache.accelerate=<更新条件が“newer”のときの高速化を行う/行わない> 各プロパティには、以下の情報を設定します。 ・ jbk.plugin.www.plugin_cache.enable 独自キャッシュを使用するかどうかを指定するプロパティです。<独自キャッシュを使用する/しない>には、以下のどちらかを記述 します。 true 独自キャッシュを使用します。 false 独自キャッシュを使用しません。従来どおりブラウザキャッシュが使用されます。 デフォルト状態では、jbk.plugin.www.plugin_cache.enableの値はfalse(従来どおりの動作)に設定されています。 ・ jbk.plugin.www.plugin_cache.dir 独自キャッシュの保存フォルダを指定するプロパティです。<独自キャッシュの保存フォルダ>には、独自キャッシュの保存フォルダ の絶対パスを指定します。デフォルト状態の設定は以下のようになっています。 ${user.home}\applet_cache これは、ユーザープロファイルフォルダにある“applet_cache”フォルダを表します(${user.home}は、ユーザープロファイルフォルダ を表すプロパティです)。 ・ jbk.plugin.www.plugin_cache.dir.freespace 独自キャッシュの保存フォルダの空き容量を指定するプロパティです。独自キャッシュの保存フォルダがあるドライブの空き容量が このプロパティに指定された値以下になると、ダウンロードされたファイルは独自キャッシュに保存されなくなります。 <独自キャッシュの保存フォルダの空き容量指定>には独自キャッシュの保存フォルダの空き容量を指定します。次の2種類の指定 の仕方が可能です。 - 絶対値指定 数値のみを指定すると空き容量をバイト数で指定したことになります。空き容量をキロバイト数あるいはメガバイト数で指定する 場合には、数値の後ろにそれぞれ'K'あるいは'M'を付けてください。'K'や'M'は小文字で指定してもかまいません。 - 35 - - 割合指定 数値の後ろに'%'を付けて指定すると、空き容量をそのドライブの総容量に占める割合で指定したことになります。 デフォルト状態では、jbk.plugin.www.plugin_cache.dir.freespaceの値は1%に設定されています。 例 空き容量の指定例 # バイト数指定の例 jbk.plugin.www.plugin_cache.dir.freespace=1024 # キロバイト数指定の例 jbk.plugin.www.plugin_cache.dir.freespace=256K # メガバイト数指定の例 jbk.plugin.www.plugin_cache.dir.freespace=10M # 割合指定の例 jbk.plugin.www.plugin_cache.dir.freespace=1% ・ jbk.plugin.www.plugin_cache.update 独自キャッシュの更新条件を指定するプロパティです。<独自キャッシュの更新条件>には、以下のどちらかを記述します。 newer Webサーバ上のファイルの更新日時がキャッシュ内のファイルの更新日時よりも新しい場合に、キャッシュの更新を行います。 diff Webサーバ上のファイルの更新日時がキャッシュ内のファイルの更新日時と異なる場合に、キャッシュの更新を行います。 デフォルト状態では、jbk.plugin.www.plugin_cache.updateの値はnewerに設定されています。 ・ jbk.plugin.www.plugin_cache.accelerate 独自キャッシュの更新条件がnewerに設定されているときに、サーバへの問い合わせ処理を高速化するかどうかを指定するプロパ ティです。<更新条件が“newer”のときの高速化を行う/行わない>には、以下のどちらかを記述します。 true Webサーバへの問い合わせに“If-Modified-Since:”ヘッダをつけて問い合わせを行います。サーバからのダウンロード容量が 削減されるため、キャッシュ使用時の処理が高速化されます。 false 従来どおりWebサーバに問い合わせを行い、キャッシュ使用時にはWebサーバからのダウンロードを打ち切ってキャッシュファ イルからの読み込みを行います。 デフォルト状態では、jbk.plugin.www.plugin_cache.accelerateの値はfalseに設定されています。 独自キャッシュの動作 JBKプラグインの独自キャッシュの動作は次のようになります。 ・ Webサーバからダウンロードしようとするファイルが独自キャッシュに保存されていない場合、JBKプラグインはそのファイルをWeb サーバからダウンロードし、同時に独自キャッシュに保存します。 ・ Webサーバからダウンロードしようとするファイルが独自キャッシュに保存されている場合、JBKプラグインは独自キャッシュに保存 されているファイルの更新日付とサイズを確認します。 - Webサーバにあるファイルと独自キャッシュに保存されているファイルの更新日付の関係がjbk.plugin.www.plugin_cache.update で指定されている条件に当てはまる場合、JBKプラグインはそのファイルをWebサーバからダウンロードし、同時に独自キャッ シュに保存します。 - Webサーバにあるファイルと独自キャッシュに保存されているファイルのサイズが異なる場合にも、JBKプラグインはそのファイ ルをWebサーバからダウンロードし、同時に独自キャッシュに保存します。 - 36 - これ以外の場合には、JBKプラグインはファイルをWebサーバからダウンロードせず、代わりに独自キャッシュに保存されているファ イルをロードします。 ・ jbk.plugin.www.plugin_cache.accelerateがtrueで設定されていた場合、キャッシュファイルが存在しているときには、Webサーバに “If-Modified-Since:”ヘッダをつけて問い合わせを行い、“304~Not~Modified”の応答が帰ってきた場合は独自キャッシュに保存 されているファイルをロードします。 ・ JBKプラグインは独自キャッシュに保存したファイルを削除しません。独自キャッシュに保存されたファイルを削除する必要がある 場合には、ユーザがそのファイルを手動で削除する必要があります。 ・ 独自キャッシュの保存フォルダがあるドライブの空き容量がjbk.plugin.www.plugin_cache.dir.freespaceに指定された値以下になっ た場合には、JBKプラグインはダウンロードしたファイルを独自キャッシュに保存しません。なお、ファイルがキャッシュに保存されな くてもファイルのダウンロードは正常に行われますので、このような場合でもアプレットが動作しなくなることはありません。 JBKプラグインのキャッシュAPI JBKプラグインの独自キャッシュが正しく動作するには、アプレット上の異なる2つのスレッドからWebサーバ上の同じファイルを同時に ダウンロードすることがない(ファイルの同時ダウンロードが発生しない)、ということが保証されている必要があります。 デフォルトで独自キャッシュの対象となっている3種類のファイル(クラスファイル、JARファイルおよびイメージファイル)は、同時ダウン ロードが発生しないことがJava VM内部で保証されています。これら以外のファイルは、ユーザがそのファイルの同時ダウンロードが発 生しないことを保証できる場合に限り、アプレットからJBKプラグインのキャッシュAPIを呼び出してそのファイルを独自キャッシュの対象 とすることができます。 JBKプラグインのキャッシュAPIは次のとおりです。 ・ クラス名 - com.fujitsu.jbk.plugin.browser.www.PluginCacheController (extends java.lang.Object) ・ メソッド: - getInstance PluginCacheControllerのインスタンスを返します。 public static PluginCacheController getInstance() 返り値 PluginCacheControllerのインスタンス - getCachedURL 引数で渡されたURLのファイルを独自キャッシュの保存対象にします。 public URL getCachedURL(URL origURL) origURL 独自キャッシュの保存対象にしたいURLのオブジェクト 返り値 独自キャッシュの保存対象となったURLのオブジェクト。このオブジェクトを用いてダウンロードを行うことで、そのURLのファ イルが独自キャッシュの保存対象となります。 PluginCacheControllerクラスのクラスファイルは、JBKプラグインの開発用jarファイルに格納されています(JBKをインストールしたフォル ダ配下の“classes\jbkstd.jar”になります)。このクラスを使用したアプレットのクラスをコンパイルする場合は、クラスパスにJBKプラグイン の開発用jarファイルが含まれていることを確認してください。 例 JBKプラグインのキャッシュAPIを呼び出す実装例 - 37 - ・ 通常のダウンロード処理の例 // URLオブジェクトの作成 URL url = new URL(/* ダウンロードするファイルのURL */); // URLConnectionの取得 URLConnection conn = url.openConnection(); // ダウンロード用の入力ストリームの取得 InputStream in = conn.getInputStream(); /* 以下InputStreamを用いたファイルの読込み処理 */ ・ JBKプラグインのキャッシュAPIを用いたダウンロード処理の例 // import文 import com.fujitsu.jbk.plugin.browser.www.PluginCacheController; // URLオブジェクトの作成 URL url = new URL(/* ダウンロードするファイルのURL */); // 独自キャッシュを使用するためのURLオブジェクトの取得 try { url = PluginCacheController.getInstance().getCachedURL(url); } catch (Throwable ignore) { // ここで発生したエラーに対しては何も行わなくてもよい。 // 独自キャッシュが働かなくてもファイルのダウンロードは // 問題なく行えるので、アプリケーションは正常動作できる。 } // URLConnectionの取得 URLConnection conn = url.openConnection(); // ダウンロード用の入力ストリームの取得 InputStream in = conn.getInputStream(); /* 以下InputStreamを用いたファイルの読込み処理 */ 独自キャッシュについて ・ JBKプラグインの独自キャッシュに保存されたファイルは、ブラウザのキャッシュには保存されません。 ・ JBKプラグインは独自キャッシュに保存したファイルを削除しません。独自キャッシュに保存されたファイルを削除する必要がある 場合には、JBKプラグインを使用しているブラウザを全て終了させてから、独自キャッシュの保存フォルダ内のファイルをユーザが 手動で削除してください。 ・ 独自キャッシュの対象ファイルは、次のタイミングでダウンロードされます。 - デフォルトの独自キャッシュ対象ファイル(先に挙げたクラスファイル、JARファイルおよびイメージファイル)は、Java VM起動後 の初回使用時にのみ更新条件が確認され、更新が必要ならばダウンロードされます。これらのファイルはJava VMによってロー ドされるとメモリ上にキャッシュされ、以降はJava VMが終了するまでメモリ上のデータが使用されます。 - JBKプラグインのキャッシュAPIを用いて独自キャッシュ対象となったファイルは、続けて呼び出されるURLConnectionの getInputStream()メソッド実行時に更新条件が確認されます。更新が必要ならば、そのInputStreamでファイルを読み込む際に ファイルがダウンロードされます。 ・ java.applet.AppletContextクラスのshowDocument()メソッドを呼び出してダウンロードしたHTMLファイルは、JBKプラグインのキャッ シュAPIを用いても独自キャッシュの対象にはなりません。必ずブラウザのローカルキャッシュに保存されます。 ・ ファイルをダウンロードした際にWebサーバから返されるHTTPのヘッダに以下の設定のどれかが行われている場合には、JBKプ ラグインはそのファイルをキャッシュに保存しません。 - "Pragma"フィールドに"no-cache"が指定されている。 - 38 - - "Cache-Control"フィールドに"no-cache"あるいは"no-store"が指定されている。 なお、JBKプラグインは"Cache-Control"フィールドの"max-age"指定を用いたキャッシュ制御は行いません。 HTTPのヘッダ情報の詳細は、HTTP/1.1の仕様を参照してください。 ・ 独自キャッシュの保存フォルダには、PluginCacheController.iniというファイルが生成されます。このファイルは、JBKプラグインが独 自キャッシュの管理に使用するファイルです。このファイルを編集すると独自キャッシュの動作が保証されなくなりますので、この ファイルはユーザが編集しないようにしてください。 ・ Windows Vista/Windows 7上で独自キャッシュ機能を用いる場合は、独自キャッシュの保存フォルダは、ユーザプロファイルの LocalLowフォルダ配下に設定してください。"${user.home}"が、ユーザープロファイルフォルダを表すプロパティです。 ・ Webサーバにファイルを要求する際に、“GET”メソッドで要求したものだけが、JBKプラグインの独自キャッシュに保存されます。 “POST”メソッドで要求したものは、独自キャッシュには保存されません。 ・ ファイルをダウンロードした際に、Webサーバから返されるHTTPのヘッダに"Last-Modified"フィールドまたは"Content-Length"フィー ルドがない場合には、そのファイルはJBKプラグインの独自キャッシュには保存されません。 2.3.14 ダウンロード通知機能 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 ロードしようとするJARファイルのURL - setJars アプレットがJARファイルをロードするときにロードされるJARファイルの配列が渡されます。 public abstract void setJars(java.net.URL[] jars) jars ロードされるJARファイルのURLの配列 - 39 - ・アプレットのコードベース ・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=<ダウンロード通知機能を実装したクラス名> <ダウンロード通知機能を実装したクラス名>には、パッケージ名を含むクラス名を指定してください。 ダウンロード通知機能の使用方法 ダウンロード通知機能の使用方法を、以下に説明します。 1. PluginDownloadNotifyインタフェースを実装したクラスを作成します。 2. 上記で作成したクラスをクライアントに配置します。クラスへはクラスパスが設定されている必要があります。 環境変数“CLASSPATH”にパスを追加するか、jbkplugin.propertiesのjbk.plugin.vmoptionでクラスパスを設定します。 3. 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オプションで、実行クラスのパスを指定する。 - 40 - ・ JREのフォルダ下にclassesフォルダを作成し、このclassesフォルダに実装クラスを格納する(JREのclassesフォルダはデフォルトで ブートストラップクラスパスに指定されています)。 2.3.15 JavaScriptとの通信 JBKプラグインが提供するJavaScript対応機能を説明します。 JBKプラグインでは、Internet ExplorerでJavaScript対応機能をサポートします。以下の内容で、JavaScript対応機能の利用方法を説明 します。 ・ 2.3.15.1 アプレットからのJavaScript呼出し ・ 2.3.15.2 JavaScriptからアプレットのメソッド呼出し ・ 2.3.15.3 Cookieアクセス 2.3.15.1 アプレットからのJavaScript呼出し アプレットがJavaScript呼び出しを行うためには、JavaからJavaScriptへの通信を必要とします。JBKプラグインは、Internet Explorerを利 用している場合にはJavaラッパークラスである netscape.javascript.JSObjectを使ってJavaからJavaScriptへの通信を可能にします。 ・ クラス名: - netscape.javascript.JSObject (extends java.lang.Object) ・ メソッド: - getWindow JavaScriptへの通信を可能にするJSObjectのインスタンス(指定されたアプレットを含むウィンドウのJavaScriptにおけるWindow オブジェクト)を返します。このメソッドはjava.applet.Appletだけをパラメータとして取ります。 public static JSObject getWindow(java.applet.Applet a) - call JavaScriptのメソッドを呼び出します。 public Object call(String methodName, Object args[]) - eval JavaScriptの式を評価します。 public Object eval(String s) - getMember JavaScriptの名前付きプロパティを取得します。 public Object getMember(String name) - getSlot インデックス付きプロパティを取得します。 public Object getSlot(int index) - setMember 名前付きプロパティを設定します。 public void setMember(String name, Object value) - 41 - - setSlot インデックス付きプロパティを設定します。 public void setSlot(int index, Object value) - toString JSObjectを文字列に変換します。 public String toString() - removeMember サポートされていません。 public void removeMember(String name) Java packages for LiveConnectの仕様ではremoveMemberがありますが、JBKプラグインでは未サポートとなります。 ・ JSObjectのサポートレベル JBKプラグインはJSObjectを制限付きでサポートします。JSObject経由で次のJavaScriptオブジェクトへアクセスできます。 Anchor/Applet/Array/Boolean/Button/Checkbox/Date/document/Element/Fileupload/Form/ Frame/Function/Hidden/History/Image/Link/Location/Math/navigator/Number/Object/ Option/Password/Radio/RegExp/Reset/screen/Select/String/Submit/Text/TextArea/Window - Functionオブジェクトのarguments.length、arguments[]、callerプロパティは使用できません。 - アプレットから、Arrayオブジェクトのcontactメソッドのような引数に、オブジェクト名を指定するメソッドを呼び出す場合は、JSObject のevalメソッドを使用してください。 ・ JSObjectの使用方法 アプレットからJSObjectを使用してJavaScriptの呼び出しを行うには次のように行います。 import netscape.javascript.*; import java.applet.*; public class Applet1 extends Applet { public void init() { JSObject win = JSObject.getWindow(this); try{ //JavaScriptのWindowオブジェクトのメソッドalertを呼び出し win.call("alert",new Object[]{"Test"}); // JavaScriptのWindowオブジェクトのプロパティstatusの設定 win.eval("this.status=\"Hello World\""); /* document.forms[0].elements[0]は<INPUT TYPE=button>です */ //上記のbuttonを参照し、そのプロパティであるvalueに「ボタン」を設定 JSObject doc = (JSObject) win.getMember("document"); JSObject forms = (JSObject) doc.getMember("forms"); JSObject aform = (JSObject) forms.getMember("0"); JSObject elememts = (JSObject) aform.getMember("elements"); JSObject script_button = (JSObject) elememts.getMember("0"); script_button.setMember("value","ボタン"); //JSObjectの例外処理を行います }catch(JSException e){ - 42 - e.printStackTrace(); } } } 上記アプレットから呼び出されるフォームを持つHTMLの例は以下のようになります。 [HTMLファイル] <HTML> <HEAD> <SCRIPT src="JBKTag.js" type="text/javascript" language="JavaScript"> </SCRIPT> </HEAD> <BODY> <FORM> <INPUT TYPE=button value="button"> </FORM> <SCRIPT type="text/javascript" language="JavaScript"> <!-//JavaScriptを使用し、アプレットを表示するタグを記述します。 showapplet(); //--> </SCRIPT> </BODY> </HTML> [JavaScriptファイル(JBKTag.js)] function showapplet() { document.writeln('<OBJECT CLASSID="CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67" WIDTH=100 HEIGHT=100>'); document.writeln('<PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin">'); document.writeln('<PARAM NAME="NAME" VALUE="sample">'); document.writeln('<PARAM NAME="CODE" VALUE="Applet1.class">'); document.writeln('<PARAM NAME="color" VALUE="blue">'); document.writeln('<PARAM NAME="useDefault" VALUE="true">'); document.writeln('</OBJECT>'); } JSObjectクラス及びJSExceptionクラスは、JBKプラグインの開発用jarファイルに格納されています(JBKをインストールしたフォルダの下 の“classes\jbkstd.jar”になります)。これらのクラスを使用したアプレットのクラスをコンパイルする場合は、クラスパスにJBKプラグインの 開発用jarファイルが含まれていることを確認してください。 注意 Internet ExplorerとOSの制限に関連した注意事項 ・ window, documentオブジェクト以外では、setMemberメソッドは使用できません。 ・ windowオブジェクト以外ではevalメソッドは使用できません。 ・ Windowx XP SP2の制限により、以下の場合、ローカルファイルを相対パスで設定した場合、エラーとなります。絶対パスとすると、 動作します。 - windowオブジェクトのopenメソッドでローカルファイルを開く時 - windowオブジェクトのlocationプロパティでローカルファイルを設定する時 ・ getMemberでプロパティが獲得出来ない場合があります。 - 43 - ・ Dateオブジェクトの以下のメソッドの返り値の型がNetscapeではIntegerだが、Internet ExplorerではDoubleです。 - getYear - getMonth - getDate - getHours - getMinutes - getSeconds - getDay - getTimezoneOffset 参考 JSObjectは、JavaScriptの配列アクセスをサポートします。アプレットからJSObejctを使用して配列にアクセスするには次のように行いま す。 import netscape.javascript.*; import java.applet.*; public class Applet1 extends Applet { public void init() { JSObject win = JSObject.getWindow(this); /* 配列はarrayname = new Array("0","1","2",…)と設定 */ //JavaScriptのArrayオブジェクトを参照 JSObject array = (JSObject)win.getMember("arrayname"); //配列の要素数を参照 (Integer)array.getMember("length"); //JavaScriptの配列要素番号0を参照 (String)array.getMember("0"); } } 2.3.15.2 JavaScriptからアプレットのメソッド呼出し JBKプラグインは、JavaScriptからアプレットのpublicメソッドの呼出しを行うことができます。 呼び出されたpublicメソッドにオーバーロードされたメソッドがある場合は、オーバーロードされたメソッドのうちどれが呼び出されるか保 証されません。 ・ メソッド呼出しのための設定 JavaScriptからアプレットのメソッド呼出しを行う場合には、jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.sw.script.enable =<JavaScriptからアプレットのメソッド呼出しを利用する/しない> <JavaScriptからアプレットのメソッド呼出しを利用する/しない>には、以下のどちらかを記述してください。 true JavaScriptからアプレットのメソッドの呼出し機能を有効にします。 false JavaScriptからアプレットのメソッドの呼出し機能を無効にします。 - 44 - デフォルト状態では、jbk.plugin.sw.script.enableの値はfalse(利用しない)に設定されています。 ・ メソッド呼出し方法 JavaScriptからアプレットのメソッドを呼び出すには次のように行います。 例:アプレットのHello()メソッドをHTMLページ上のbutton1をクリックした時に起動します。 [HTML側] <OBJECT classid="CLSID:BEA62964-C40B-11D1-AACA-00A0C9216A67" width="160" height="120"> <PARAM NAME="CODE" VALUE="Applet1.class"> <PARAM NAME="TYPE" VALUE="application/x-JBK-Plugin"> <PARAM NAME="ARCHIVE" VALUE="TestApplet.jar"> <PARAM NAME="useDefault" VALUE="true"> </OBJECT> <INPUT TYPE="button" NAME="button1" VALUE="ボタン" onClick="sample()"> <Script language="JavaScript" FOR="window"> <!--function sample() { alert( document.applets[0].Hello( "XXXX" ) ); } //----> </Script> [アプレット側] import java.applet.*; public class Applet1 extends Applet{ public void init() { } //引数の前後に文字列を追加して返します public String Hello(String name){ String retVal = new String("Hello "); retVal += name ;retVal += "!!" ;return (retVal); } } ・ JavaScriptからアプレットのメソッドの引数への型変換 JavaScriptからアプレットのメソッド呼出しを行った場合、アプレットのメソッドの引数には、JavaScriptの値が渡されます。この時 JavaScriptの型からJavaの型への型変換が行われます。これらの型変換の仕様を以下に示します。 表2.3 型変換仕様(JavaScriptからアプレットのメソッドの引数) アプレットのメ ソッドで宣言し たJavaの型 Byte/byte JavaScriptから渡す値 変換結果 JavaScriptの 型 文字型 ・ "-128"~"127"までの範囲の数値文字列を渡した場合、Javaのbyte型で範囲-128~127の 値へ変換 ・ 範囲外、又はその他の文字列は、Javaのbyte型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 数値型 ・ -128~127までの範囲の数値を渡した場合、Javaのbyte型で範囲-128~127の値へ変換 ・ 範囲外は、Javaのbyte型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 論理型 ・ trueはJavaのbyte型で値-1へ変換 ・ 範囲外は、Javaのbyte型で値0へ変換 - 45 - アプレットのメ ソッドで宣言し たJavaの型 Character/ char JavaScriptから渡す値 変換結果 JavaScriptの 型 null値 ・ Javaのbyte型で値0へ変換 Object ・ Javaのbyte型で値0へ変換 文字型 ・ "0"~"65535"までの範囲の数値文字列を渡した場合、Javaのchar型で範囲0~65535の 値へ変換 ・ 範囲外、又はその他の文字列は、Javaのchar型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 数値型 ・ 0~65535までの範囲の数値を渡した場合、Javaのchar型で範囲0~65535の値へ変換 ・ 範囲外は、Javaのchar型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 論理型 ・ trueはJavaのchar型で値65535へ変換 ・ falseはJavaのchar型で値0へ変換 Short/short null値 ・ Javaのchar型で値0へ変換 Object ・ Javaのchar型で値0へ変換 文字型 ・ "-32768"~ "32767"までの範囲の数値文字列を渡した場合、Javaのshort型で範囲-32768 ~32767の値へ変換 ・ 範囲外、又はその他の文字列は、Javaのshort型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 数値型 ・ -32768~ 32767までの範囲の数値を渡した場合、Javaのshort型で範囲-32768~32767の 値へ変換 ・ 範囲外は、Javaのshort型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 論理型 ・ trueはJavaのshort型で値-1へ変換 ・ falseはJavaのshort型で値0へ変換 Integer/int null値 ・ Javaのshort型で値0へ変換 Object ・ Javaのshort型で値0へ変換 文字型 ・ "-2147483648"~ "2147483647"までの範囲の数値文字列を渡した場合、Javaのint型で 範囲-2147483648~2147483647の値へ変換 ・ 範囲外、又はその他の文字列は、Javaのint型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 数値型 ・ -2147483648 ~ 2147483647 ま で の 範 囲 の 数 値 を 渡 し た 場 合 、 Java の int 型 で 範 囲-2147483648~2147483647の値へ変換 ・ 範囲外は、Javaのint型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 - 46 - アプレットのメ ソッドで宣言し たJavaの型 JavaScriptから渡す値 変換結果 JavaScriptの 型 論理型 ・ trueはJavaのint型で値-1へ変換 ・ falseはJavaのint型で値0へ変換 Long/long null値 ・ Javaのint型で値0へ変換 Object ・ Javaのint型で値0へ変換 文字型 ・ "-2147483648"~ "2147483647"までの範囲の数値文字列を渡した場合、Javaのlong型で 範囲-2147483648~2147483647の値へ変換 ・ 範囲外、又はその他の文字列は、Javaのlong型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 数値型 ・ -2147483648 ~ 2147483647 ま で の 範 囲 の 数 値 を 渡 し た 場 合 、 Java の long 型 で 範 囲-2147483648~2147483647の値へ変換 ・ 範囲外は、Javaのlong型で値0へ変換 ・ 正の浮動小数は、小数部が .5 以上の場合は切り上げ、それ以外の場合は切り捨てる。 ・ 負の浮動小数は、小数部が .5 を超える場合は切り上げ、それ以外の場合は切り捨てる。 ※long型の範囲の数値文字列を渡しても、int型の範囲外の値は0となります。 論理型 ・ trueはJavaのint型で値-1へ変換 ・ falseはJavaのlong型で値0へ変換 Boolean/ boolean null値 ・ Javaのlong型で値0へ変換 Object ・ Javaのlong型で値0へ変換 文字型 ・ "0"を渡した場合、Javaのfalseに変換 ・ "0"以外の数値文字列は、Javaのtrueに変換 ・ 数値文字列以外の文字列は、Javaのfalseに変換 数値型 ・ 0を渡した場合、Javaのfalseへ変換 ・ 0以外は、Javaのtrueへ変換 論理型 ・ trueはJavaのtrueへ変換 ・ falseはJavaのfalseへ変換 Float/float null値 ・ Javaのfalseへ変換 Object ・ Javaのfalseへ変換 文字型 ・ "±1.4e-45"~" ±3.4028235e+38"までの範囲の数値文字列を渡した場合、Javaのfloat型 で範囲±1.4e-45~ ±3.4028235e+38の値へ変換 ・ 範囲外、又はその他の文字列は、Javaのfloat型で値0.0へ変換 数値型 ・ ±1.4e-45~±3.4028235e+38までの範囲の数値を渡した場合、Javaのfloat型で範囲 ±1.4e-45~±3.4028235e+38の値へ変換 ・ 範囲外は、Javaのfloat型で値0.0へ変換 論理型 ・ trueはJavaのfloat型で値-1.0へ変換 ・ falseはJavaのfloat型で値0.0へ変換 null値 ・ Javaのfloat型で値0.0へ変換 - 47 - アプレットのメ ソッドで宣言し たJavaの型 Double/ double JavaScriptから渡す値 変換結果 JavaScriptの 型 Object ・ Javaのfloat型で値0.0へ変換 文字型 ・ ±4.9e-324"~"±1.7976931348623157e+308"までの範囲の数値文字列を渡した場合、 Javaのdouble型で範囲4.9e-324~±1.7976931348623157e+308の値へ変換 ・ その他の文字列は、Javaのdouble型で値0.0へ変換 ・ 範囲外、又はその他の文字列は、Javaのdouble型で値0.0へ変換 数値型 ・ ±4.9e-324~±1.7976931348623157e+308までの範囲の数値を渡した場合、Javaのdouble 型で範囲4.9e-324~±1.7976931348623157e+308の値へ変換 ・ 範囲外は、Javaのdouble型で値0.0へ変換 論理型 ・ trueはJavaのdouble型で値-1.0へ変換 ・ falseはJavaのdouble型で値0.0へ変換 String null値 ・ Javaのdouble型で値0.0へ変換 Object ・ Javaのdouble型で値0.0へ変換 文字型 ・ 任意の数値文字列を渡した場合、JavaのString型で変換 数値型 ・ 任意の数値を渡した場合、JavaのString型で変換 論理型 ・ trueはString型で値"-1"へ変換 ・ false String型で値"0"へ変換 JSObject null値 ・ JavaのString型で値nullオブジェクトへ変換 Object ・ JavaのString型へ変換 文字型 ・ 任意の数値文字列を渡した場合、JavaのJSObject型で値nullに変換 数値型 ・ 任意の数値文字列を渡した場合、JavaのJSObject型で値nullに変換 論理型 ・ true/falseを渡した場合、JavaのJSObject型で値nullに変換 null値 ・ JavaのJSObject型で値nullオブジェクトへ変換 Object ・ JavaのJSObject型へ変換 ※JSObject型へ変換されたオブジェクトのメソッドを呼び出すことはできません。 ・ アプレットのメソッドの返却値からJavaScriptへの型変換 アプレットのメソッドの返却値がJavaScriptへ渡された場合、Javaの型からJavaScriptの型への型変換が行われます。これらの型変 換の仕様を以下に示します。 表2.4 [型変換仕様(アプレットのメソッドの返却値からJavaScript)] Javaのメソッド返却値の型 JavaScriptが受け取る値 Void JavaScriptのnull値を受け取ります。 Byte/byte JavaScriptの数値型で受け取ります。 Character/char JavaScriptの数値型で受け取ります。 Short/short JavaScriptの数値型で受け取ります。 Integer/int JavaScriptの数値型で受け取ります。 Long/long Javaがlong型の範囲-2147483648~2147483647は、JavaScriptの数値型で受け取ります。 Boolean/boolean Javaのtrueは、JavaScriptの論理型trueを受け取ります。 Javaのfalseは、JavaScriptの論理型falseを受け取ります。 Float/float Javaのfloat型は、JavaScriptの数値型で受け取ります。 - 48 - Javaのメソッド返却値の型 JavaScriptが受け取る値 Double/double Javaのdouble型は、JavaScriptの数値型で受け取ります。 String JavaのString型は、JavaScriptの文字列で受け取ります。 JSObject JavaのJSObject型は、JavaScriptの[Object]で受け取ります。 2.3.15.3 Cookieアクセス アプレットでのCookie利用方法を説明します。 JBKプラグイン上で動作させるアプレットは、JSObjectを利用して取得できるJavaScriptのdocumentオブジェクトが持つcookieプロパティ を参照または設定することにより、Cookieを利用することができます。 例 アプレットからJSObjectでCookieを取得し、そのCookieをサーバへ送信する。 import java.applet.*; import java.net.*; import netscape.javascript.*; public class Applet1 extends Applet { public void init(){ JSObject win = JSObject.getWindow(this); //JavaScriptのdocumentオブジェクトのcookieを参照 JSObject doc = (JSObject)win.getMember("document"); String cookie = (String)doc.getMember("cookie"); try{ /* クッキー送信先のURLを設定 */ //アプレットの基底URLを取得 URL url = getCodeBase(); String strurl = url.toString(); //送信先へのPathを設定 /* ここでは/servlet/cookieとします */ strurl = strurl + "/servlet/cookie"; url = new URL(strurl); //クッキーを設定 HttpURLConnection urlCon = (HttpURLConnection)url.openConnection(); urlCon.setRequestProperty( "cookie" , cookie ); //送信先への接続を切断 urlCon.disconnect(); /* ここにHttpURLConnectionを利用した記述を行います */ }catch( Exception e ) e.printStackTrace(); } } } 2.4 ブラウザのプロセスとJava VMの関係 ブラウザのプロセスとJBKプラグインが起動するJava VMの関係を説明します。 - 49 - JBKプラグインは、ブラウザのプロセスごとに1つJava VMを起動します。一度起動されたJava VMは、そのブラウザのプロセスが終了す るまで起動されたままの状態になります。したがって、JBKプラグインを使用してアプレットを実行する場合には、ブラウザのプロセスと Java VMの関係は以下のようになります。 ・ ブラウザ上でのアプレットの実行が終了すると、JBKプラグインが起動したJava VMはブラウザのプロセス内で待ち状態に入りま す。同じブラウザ上で再びアプレットを実行する際には、JBKプラグインはJava VMを再起動せずに、この待ち状態のJava VMを使 用してアプレットを実行します。 ・ ブラウザのプロセスが終了すると、そのブラウザ内でJBKプラグインが起動したJava VMも終了します。 ・ ブラウザのプロセスを1つ起動し、そのブラウザ上でJBKプラグインを使用して複数のアプレットを実行する場合には、それらのアプ レットは同じJava VMを使用して実行されます。 ・ ブラウザのプロセスを複数起動した場合には、JBKプラグインはそれぞれのブラウザごとにJava VMを起動します。各ブラウザ上の アプレットは、それぞれ各ブラウザごとに起動されたJava VMを使用して実行されます。 アクティブデスクトップ上でのInternet ExplorerでJBKプラグインを使用する場合 アクティブデスクトップ上のInternet Explorerは、Windowsのエクスプローラのプロセスの一部として動作します。エクスプローラのプロセ スはWindowsの起動時に1つ起動され、Windowsが終了するまで起動されたままの状態になります。したがって、アクティブデスクトッ プ上のInternet ExplorerでJBKプラグインを使用する場合には、Internet ExplorerとJava VMの関係は以下のようになります。 ・ アクティブデスクトップ上のInternet ExplorerでJBKプラグインを使用する場合には、JBKプラグインはエクスプローラのプロセス内 でJava VMを起動します。Internet Explorerが終了すると、JBKプラグインが起動したJava VMはエクスプローラのプロセス内で待ち 状態に入ります。 ・ Internet Explorerを再起動した場合には、JBKプラグインはJava VMを再起動せずに、エクスプローラのプロセス内で待ち状態にあ るJava VMをそのまま使用してアプレットを実行します。 ・ Internet Explorerを複数起動した場合には、JBKプラグインはそれらのInternet Explorer上で同じJava VMを使用してアプレットを実 行します。 アクティブデスクトップ上でInternet Explorerの起動/終了に合わせてJava VMを起動/終了させるには、Internet Explorerをエクスプ ローラのプロセスとは別のプロセスで起動する必要があります。 2.5 アプレット終了時の処理 JBKプラグインを使用してアプレットを実行する際のアプレットの終了時の処理を説明します。 ブラウザ上で実行されているアプレットは、以下の場合に終了します。 ・ 他のHTMLファイルが呼び出された時 ・ ブラウザのウィンドウが閉じられた時 アプレットの終了時には、そのアプレットのクラスのstop()メソッドとdestroy()メソッドが呼び出されます。 JBKプラグインでは、ブラウザのウィンドウが閉じられる時に、そのウィンドウ上のアプレットを先に終了させ、その後で、ブラウザのウィン ドウを閉じる、という処理を行っています。これにより、ブラウザが終了する前に、アプレットの終了処理が確実に呼び出されることを保 証しています。 ブラウザのウィンドウが閉じられる際に、アプレットの終了処理に時間がかかる場合には、JBKプラグインは以下のようなメッセージボッ クスを表示します。 図2.3 アプレットの終了処理実行中を示すメッセージボックス - 50 - これは、メッセージボックスに表示されているアプレットが終了処理中であることを示します。アプレットの終了処理が完了すると、この メッセージボックスは自動的に消えます。 [強制終了]ボタン メッセージボックスのボタン[強制終了]をクリックすると、そのアプレットの終了処理は中断され、アプレットは強制終了されます。こ の場合、そのアプレットのstop()メソッドおよびdestroy()メソッドの実行が完了したかどうかは保証されません。 ボタン[強制終了]は、何らかの不都合によりアプレットが終了しなくなった場合などにお使いください。 メッセージボックスの抑止 上記のメッセージボックスを出さずに、ブラウザのウィンドウが閉じられたときに即座に画面を閉じるように設定することができます。 jbkplugin.propertiesの中に以下の行を記述してください。 jbk.plugin.sw.applet.delay=<アプレットの終了が完了するまでの待機を行う/抑止する> <アプレットの終了が完了するまでの待機を行う/抑止する>には、以下のどちらかを設定してください。 true アプレットの終了が完了するまでの待機を行います。 false アプレットの終了が完了するまでの待機を行わず、即座にウィンドウを閉じます。 デフォルト状態では、jbk.plugin.sw.applet.delayの値はtrueに設定されています。 falseを設定した場合、そのアプレットのstop()メソッド およびdestroy()メソッドの実行が完了したかどうかは保証されません。 2.6 アプレット印刷機能 アプレット印刷機能とは、HTMLドキュメントを印刷するときに、そのドキュメント内のアプレットの画面イメージも一緒に印刷する機能の ことです。以下は、アプレット印刷機能を使用するにあたっての注意事項です。 ・ JBKプラグイン用のHTMLタグ(<OBJECT>タグまたは<EMBED>タグ)のwidth属性およびheight属性を、Webブラウザ画面に対す る割合(%)で指定した場合、アプレットの画面上での縦横の比率と印刷結果の縦横の比率が一致しなくなる場合があります。 この ような場合、アプレットの印刷結果が上下または左右につぶれたように出力されます。アプレットの印刷機能を用いる場合には、 JBKプラグイン用のHTMLタグのwidth属性およびheight属性を固定値で指定することをお勧めします。 ・ アプレット上またはGUI部品上にイメージデータを表示する場合、使用するOSおよびプリンタドライバによっては、イメージデータ が粗く拡大されたような出力結果になる場合があります。 ・ java.awt.GraphicsクラスのcopyAreaメソッドは印刷時にはサポートされません。アプレットでこのメソッドを用いて描画を行っている 場合、その部分は印刷されません。 2.7 注意事項 Internet Explorerにアドオンしているソフトウェアを導入している場合 アドオンのソフトウェアを無効にしてから、アプレットを動作させてください。有効にしている場合は、Internet Explorerが異常終了する場 合があります。 タスクバーをクリックして画面遷移する場合 Internet Explorer 9以降では、JFDialogを継承するダイアログ画面を表示した状態で、タスクバーをクリックして画面遷移すると、元のダ イアログ画面に戻ったときにフォーカスがなくなります。 アプレットの破棄 Internet Explorer 9以降では、ウィンドウが閉じられたときに即座に画面を閉じるようになりました。そのため、以下の場合、アプレットの 破棄をキャンセルしても画面が消えてしまいます。また、このとき、ウィンドウが消えてもプロセスは残ったままになります - 51 - ・ アプレットからJBKプラグインのアプレットへの終了問合せのdestroyRequestedを使用して、ブラウザを終了しようとしても終了しない ようにし、かつ ・ 前述のアプレットがあるタブまたはウィンドウを閉じた場合 [対処方法] アプレットを貼り付けているHTML側で、windowにonbeforeunloadハンドラを実装してください。 <head> <script> function checkClose() { } window.onbeforeunload = new Function("checkClose()"); </script> </head> ただしInternet Explorer 10の場合、この対処を実施した状態でいったんdestroyRequested()でfalseを返した場合、その後にtrueを返却 してウィンドウを閉じることを許可しても、ウィンドウが閉じられなくなります。Internet Explorer 10環境でdestroyRequestedを使用する場 合は、trueを返すようにして終了処理の抑止を行わないでください。 アプレットの親ウィンドウ アプレットの親ウィンドウを、親ウィンドウとしてダイアログを生成して表示した際に、リサイズ可能なダイアログの場合、表示されるアイコ ンが異なります。 AppletクラスのshowDocumentメソッド showDocumentメソッドの第2引数に“”(空文字列)を指定すると、ドキュメントが表示されるウィンドウあるいはフレームが一意に定まらな くなる場合があります。showDocumentメソッドの第2引数には空文字列を指定しないようにしてください。 ズーム機能 ズーム機能で拡大率を変更してもアプレットのサイズは変更されません。 user.homeプロパティの設定値 JBKプラグインは、Java SEが設定するデフォルトのuser.homeプロパティの値をそのまま使用します。Java SEが設定するuser.homeプロ パティの値は、以下のとおりです。 (Windowsのインストールドライブ)\Documents and Settings\(ユーザ名) 例えば、(Windowsのインストールドライブ)="C:"、(ユーザ名)="foo"の場合は、user.homeプロパティの値は“C:\Documents and Settings \foo”になります。 JARファイルのキャッシュ Java SEには、JARファイルのキャッシュ機能が独自に備えられています。サーバからダウンロードされたJARファイルはWindowsの一 時フォルダに“jar_cacheXXXXX.tmp”(XXXXXは任意の数字)という名前で格納されます。 Java SEが持つJARファイルのキャッシュ機能と、JBKプラグインの“2.3.6 アプレットのダウンロード方式の指定”あるいは“2.3.7 HTTPS プロトコルの使用”における指定との関係は以下のとおりです。 ・ “java”を指定した場合 1. JARファイルは、初めて読み込まれるときにWebサーバからダウンロードされます。 2. ダウンロードされたJARファイルはJava SEの機能によりWindowsの一時フォルダに格納されます。以降、ブラウザが終了す るまではそのJARファイルはダウンロードされず、一時フォルダ内に格納されたJARファイルが使用されます。 3. ブラウザを終了すると、一時フォルダ内に格納されていたJARファイルは削除されます。次回ブラウザ起動時には、1の手順 からの繰り返しになります。 - 52 - ・ “hybrid”あるいは“native”を指定した場合 1. JARファイルは、初めて読み込まれるときにブラウザの機能を用いてWebサーバからダウンロードされます。ブラウザのキャッ シュ機能が有効な場合には以下のようになります。 - JARファイルがブラウザのキャッシュに保存されていて、かつ、キャッシュの内容が更新される必要がない場合には、JAR ファイルはダウンロードされず、ブラウザがキャッシュしているファイルが使用されます。 - JARファイルがWebサーバからダウンロードされた場合には、そのファイルはブラウザのキャッシュに保存されます。 2. 読み込まれたJARファイルは、ブラウザのキャッシュ機能が有効であるかどうかに関わらず、Java SEの機能によりWindowsの 一時フォルダに格納されます。以降、ブラウザが終了するまではこの一時フォルダ内に格納されたJARファイルが使用され ます。 3. ブラウザを終了すると、Java SEの一時フォルダ内に格納していたJARファイルは削除されます。ブラウザのキャッシュに保存 されているJARファイルはそのまま残ります。次回ブラウザ起動時には、1の手順からの繰り返しになります。 ブラウザが異常終了した場合には、Java SEのキャッシュしていたJARファイルが一時フォルダに残ったままになることがあります。これ らのファイルは削除しても問題ありませんので、ファイルが残ったままになっている場合には手動で削除してください。 finalize()メソッドでの処理 finalize()メソッドの中では、System.out.println()やSystem.err.println()などの標準出力および標準エラー出力への出力を行わないよう にしてください。このような出力を行うと、ガベージコレクトが起きたときに、まれにJBKプラグインのJavaコンソールへの出力時に処理が 止まってしまうことがあります。どうしても必要な場合にはアプリケーションのデバッグ時のみ出力を行うようにし、実際の運用時には出 力を行わないように処理を切り替えてください。 ダウンロード方式における差異 アプレットのダウンロード方式の違いにより、以下のような差異が生じます。 ダウンロード 方式 Javaのネットワーク通信クラス(API) ブラウザ機能 認証 JBKプラグインが実装したjava.net.Authenticatorクラスにより処理されます。 ご使用のブラウザの機能に 依存します。認証処理はブ ラウザの認証機能をそのまま 使用します。 Cookie JBKプラグインが実装したJavaの通信処理クラス内でJavaScriptを呼び出し、ブラウザ からCookie情報を取得してHTTPヘッダに追加します。(*1)(*5) ご使用のブラウザの設定に 依存します。(*2) プロキシの 使用 JBKプラグイン設定ファイルのプロキシ設定値によって以下のようになります。 ブラウザのプロキシ設定をそ のまま使用します。 ・ プロキシを使用しない:直接接続 ・ プロキシを使用する:設定ファイルで指定されたプロキシを使用 プロキシサーバを指定していない場合は、ブラウザのプロキシ設定をそのまま使 用(*3)(*4) ・ 未設定:ブラウザのプロキシ設定をそのまま使用(*3) ・ *1) アプレット側で、Cookieヘッダを付加したときは追加しません。 ・ *2) アプレット側で、Cookieヘッダを付加しても無効になります。 ・ *3) プロキシ自動設定ファイルに対応していますが、以下の制限があります。 - HTTPS通信のときにはプロキシ自動設定ファイルには対応していません。 - 関数dnsResolveは、ホストがIPアドレス以外の場合に常に空の文字列を返します。 - 関数isResolvableは、ホストがIPアドレス以外の場合に常にfalseを返します。 - 関数isInNetは、ホストがIPアドレス以外の場合に常にfalseを返します。 - 53 - ・ *4) SOCKSホストの設定がされていた場合、以下の条件でSOCKSホスト経由の接続を行います。 - HTTPプロキシおよびHTTPSプロキシが設定されておらず、かつ、プロキシ除外リストに含まれないURLが指定された場合 - プロキシ自動設定ファイルがSOCKSホスト経由での接続の応答を返した場合 ・ *5) アプレットのロードが完了するまでは、Cookieは付加しません。 [プロトコルごとのダウンロード方式] プロトコル HTTP/HTTPS ダウンロード方式 独自キャッシュ クラスファイル JARファイル イメージファイル(*1) その他のファイル(*2) java なし JavaのAPI あり hybrid native なし ブラウザ機能 あり ブラウザ機能 なし ブラウザ機能 JavaのAPI JavaのAPI あり ・ *1) java.applet.AppletクラスのgetImage()メソッドを用いてWebサーバからダウンロードされたイメージファイル(*.gif、*.jpg) ・ *2) アプレットで使用するプロパティファイル(*.properties)やアプレットがJavaのURLクラスを用いてWebサーバから取得しているファ イル JavaScriptとの通信時の注意事項 アプレットからJavaScriptを呼び出す場合は、Javaの呼び出しメソッド内で排他制御されます。また、“ダウンロード方式における差異” のとおり、JavaのAPIを使用したHTTP通信時にはJBKプラグイン内部でJavaScriptの呼び出しを行う場合があります。したがって、アプ レットからJavaScriptを呼び出し、そのJavaScriptがJavaのHTTP通信を行うメソッドを呼び出している場合には、デッドロックが発生する 場合があります。そのようなアプリケーションは、ダウンロード方式にブラウザ機能を使用してください。 2.8 エラーメッセージ一覧 JBKプラグインの使用時に出力されるエラーメッセージと、出力されたメッセージに対する処理を説明します。 ・ JBKプラグインの使用時には、以下に説明するエラーメッセージの他に、ブラウザが出すエラーメッセージ、またはJavaクラスの実 行時に発生した例外が出力されます。これらのメッセージの詳細は、使用しているブラウザのマニュアルまたは、Java SEのドキュメ ントを参照してください。 ・ アプレットの画面に“エラー:アプレットのロードに失敗しました”と表示された場合は、Javaコンソールを表示させて例外が表示され ていないか確認してください。java.io.FileNotFoundExceptionが発生していた場合は、ファイルの配置が正しいか、または、パスに 空白が含まれていないかを確認してください。 エラーメッセージの出力先 JBKプラグインの実行時にエラーが発生した場合、エラーメッセージの出力先は以下のようになります。 ・ Javaクラス内で発生したエラーは、JavaコンソールにJavaの例外の形式で表示されます。 - 54 - ・ それ以外のエラーは、メッセージボックス形式で表示されます。 図2.4 Javaの例外形式によるエラーメッセージの表示例 図2.5 メッセージボックス形式によるエラーメッセージの表示例 エラーメッセージの出力フォーマット [Javaの例外形式の出力] com.fujitsu.jbk.plugin.browser.PluginException: (現象を表すメッセージ) (原因・対処方法を表すメッセージ) (エラーの詳細コード) 例外のトレース情報 : [メッセージボックス形式の出力] エラー:(現象を表すメッセージ) (原因・対処方法を表すメッセージ) (エラーの詳細コード) ・ 現象を表すメッセージ 発生したエラーの現象を示すメッセージが表示されます。 各メッセージの詳細は、後述の“現象を表すメッセージ”を参照してくだ さい。 ・ 原因・対処方法を表すメッセージ 発生したエラーの原因・対処方法を示すメッセージが表示されます。 各メッセージの詳細は、後述の“原因・対処方法を表すメッ セージ”を参照してください。 ・ エラーの詳細コード 発生したエラーの詳細を示すコードと、JBKプラグイン内でのエラーの発生箇所を示すコードが表示されます。 これらのコードは、 発生したエラーに対して調査が必要となる場合に使用されます。 - 55 - 現象を表すメッセージ エラーの現象を表すメッセージに表示される内容は、以下に示します。 メッセージ:HTMLドキュメントの表示に失敗しました。 現象:java.applet.AppletクラスのshowDocument()メソッドの呼出し時に、JBKプラグイン内でエラーが発生しました。 メッセージ:Java VMの起動に失敗しました。 現象:指定のJava SEによるJava VMの起動時にエラーが発生しました。 メッセージ:Javaコンソールの生成に失敗しました。 現象:JBKプラグインのJavaコンソールの生成に失敗しました。この現象は、JBKプラグイン起動時のJavaコンソールの表示/非表 示の設定を非表示にしてある場合にも起こりえます。画面のプロパティがVGA互換モード(16色)のときにも発生します。 メッセージ:Javaコンソールの表示に失敗しました。 現象:JBKプラグインのJavaコンソールの表示時にエラーが発生しました。 メッセージ:JBKプラグインの初期化に失敗しました。 現象:JBKプラグインの初期化処理時にエラーが発生しました。 メッセージ:JBKプラグインの設定ファイルの読込みに失敗しました。 現象:JBKプラグインの設定ファイル(jbkplugin.properties)の読込み時にエラーが発生しました。 メッセージ:Webサーバとの接続に失敗しました。 現象:Webサーバからアプレットのクラスファイルあるいはその他のファイルをダウンロードする際にエラーが発生しました。 メッセージ:Webサーバへのデータ送信に失敗しました。 現象:JavaのURLクラスを用いてWebサーバにデータを送信(POST)する際にエラーが発生しました。 メッセージ:アプレットの生成に失敗しました。 現象:アプレットの生成時にエラーが発生しました。 メッセージ:アプレットの破棄に失敗しました。 現象:アプレットの破棄時にエラーが発生しました。 メッセージ:アプレットのパラメータの取得に失敗しました。 現象:HTMLファイルに記述されているアプレットのパラメータを取得する際に、エラーが発生しました。この現象は、Internet Explorer を使用している場合にのみ発生する可能性があります。 メッセージ:アプレットのリサイズに失敗しました。 現象:アプレットのリサイズ時にエラーが発生しました。 メッセージ:状態メッセージの表示に失敗しました。 現象:java.applet.AppletクラスのshowStatus()メソッドの呼出し時に、JBKプラグイン内でエラーが発生しました。 メッセージ:ブラウザのプロキシ設定の取得に失敗しました。 現象:ブラウザに設定されているプロキシの情報の取得時にエラーが発生しました。 原因・対処方法を表すメッセージ エラーの原因・対処方法を表すメッセージに表示される内容は、以下に示します。 メッセージ:HTMLファイルにJBKプラグイン用のタグが正しく記述されているか確認してください。 原因:JBKプラグインを使用するためのHTMLファイルの記述に必要な必須属性が指定されていません。 利用者の処置:JBKプラグインを使用するためのHTMLファイルの記述には、以下の必須属性が指定されている必要があります。 - CODE - アプレットのクラス - WIDTH - アプレットの幅 - 56 - - HEIGHT - アプレットの高さ これらの属性が正しく指定されているか確認してください。 なお、JBKプラグインを使用するためのHTMLファイルの記述方法は、 “2.2.3 HTMLファイルの作成”を参照してください。 メッセージ:Internet Explorerが正しくインストールされているか確認してください。 原因:このエラーは、JBKプラグインがInternet ExplorerのプラグインAPIを呼び出した際に発生したエラーです。 利用者の処置:以下の事を確認してください。 - Internet Explorerが正しくインストールされているか。 - 古いバージョンのInternet Explorerを使用していないか。 メッセージ:JBKプラグインの実行環境が正しく設定されているか確認してください。 原因:このエラーは、JBKプラグインを実行するための環境が正しく設定されていない場合に発生します。 利用者の処置:以下の事を確認してください。 - JBKプラグインが正しくインストールされているか。 JBKプラグインを使用するための環境設定は、“2.2.1 環境設定”を参照してください。 メッセージ:JBKプラグインの設定情報を確認してください。 原因:このエラーは、Java VMとして使用するJava SEの設定が取得できなかった場合に主に発生します。 利用者の処置:以下の事を確認してください。 - JBKプラグインの設定ファイル(jbkplugin.properties)が存在しているか。 jbkplugin.propertiesは、JBKをインストールしたフォルダの下の、“classes”というフォルダの中にあります。 - 使用するJava SEをユーザが指定している場合は、jbkplugin.properties内にその指定が正しく記述されているか。 - 使用するJava SEをユーザが指定していない場合は、JBKが正しくインストールされているか。 JBKプラグインは、JBKのインストール時に指定したJava SEをJava VMとして使用します。Java VMとして使用するJava SEの指定 は、“2.3.1 Java VMの指定”を参照してください。 メッセージ:JBKプラグインの内部エラーです。 原因:JBKプラグインの実行時に内部エラーが発生しました。 利用者の処置:当社技術員または富士通担当SEにご連絡ください。 メッセージ:URLの指定およびWebサーバの動作状態を確認してください。 原因:このエラーは、JBKプラグインがブラウザの機能を使用してアプレットをダウンロードする際に発生したエラーです。 利用者の処置:以下の事を確認してください。 - 正しいURLが指定されているか。 - Webサーバが正しく動作しているか。 - プロキシサーバを使用している場合には、プロキシサーバが正しく動作しているか。 メッセージ:アプレットのパラメータに、始めに使用したものと異なる設定ファイルが指定されていないか確認してください。 原因:このエラーは、アプレットを複数実行するときに、始めに実行したアプレットと次に実行しようとしたアプレットが異なる設定ファ イルを使用しようとした場合に発生します。 利用者の処置:以下の事を確認してください。 - アプレットのパラメータに“@JBKPLGPROP”が指定されているアプレットと指定されていないアプレットが混在していないか。 - アプレットのパラメータに“@JBKPLGPROP”が指定されている場合には、すべてのアプレットで“@JBKPLGPROP”が同じ値に 設定されているか。 詳しくは、“2.3.12 設定ファイルの切り替え”を参照してください。 - 57 - メッセージ:使用するJDK/JREが正しくインストールされているか、またはすでに他のJava VMが起動されていないか確認してくださ い。 原因:このエラーは、Java VMが正しく実行できなかった場合に発生します。 利用者の処置:まず、以下の事を確認してください。 - 使用するJava SEをユーザが指定している場合 - JBKプラグインの設定ファイル(jbkplugin.properties)に、使用するJava SEが正しく指定されているか。 - 指定したJava SEが正しくインストールされているか。 - 使用するJava SEをユーザが指定していない場合 - JBKが正しくインストールされているか。 - JBKのインストール時に指定したJava SEが正しくインストールされているか。 Java VMとして使用するJava SEの指定方法は、“2.3.1 Java VMの指定”を参照してください。 また、あわせて以下も確認してください。 - このプロセスですでに他のJava VMが起動されていないか。 - 環境変数CLASSPATHに、使用するJava SEと異なるバージョンのクラスへのパスが含まれていないか。 JBKプラグインが使用するクラスパスは、“環境変数の設定”を参照してください。 メッセージ:メモリ不足です。 原因:JBKプラグインを使用したアプレットの実行に必要なメモリが確保できませんでした。 利用者の処置:以下のいずれかの処理を行ってください。 - 他の起動しているアプリケーションを終了させてから、再度ブラウザを起動してください。 - システムを再起動してください。 メッセージ:ユーザ操作によりWebサーバとの接続が中断されました。 原因:このメッセージは、JBKプラグインがブラウザの機能を使用してアプレットをダウンロードしている途中で、ユーザがブラウザの ボタン[中止]をクリックするなどしてダウンロードを中断した場合に表示されます。 利用者の処置:ブラウザのボタン[再読込み]をクリックするなどして、表示されているHTMLファイルを再読込みすれば、アプレット のダウンロードが再開されます。 メッセージ:予期されないエラーです。 原因:JBKプラグインの実行時に予期されない状態が発生しました。 利用者の処置:当社技術員または富士通担当SEにご連絡ください。 2.9 jbkplugin.properties JBKプラグインの設定ファイル(jbkplugin.properties)に設定される情報の一覧です。各設定の詳細は“2.3 使用方法”を参照してくださ い。 設定情報 キー 値と値の説明 Java VMの指 定 jbk.plugin.javahome JBKプラグインがJava VMとして使用するJava SEのインストールフォ ルダを指定します。 初期設定値:未設定(JBKのインストール時に選択したJava SEが使 用されます) Java VMの起 動オプション の指定 jbk.plugin.vmoption JBKプラグインがJava VMを起動する際の起動オプションを指定します 初期設定値:-Dsun.java2d.noddraw=true ポリシーファイ ルの指定 jbk.plugin.policy.url JBKプラグインで使用するポリシーファイルを指定します。 初期設定値:JBKプラグインのデフォルトのポリシーファイル(file:$ - 58 - 設定情報 キー 値と値の説明 {jbk.home}/classes/jbkplugin.policy) ※URL表記で指定してください。空白文字は、'%20'と置き換えてく ださい。 プロキシの設 定 jbk.plugin.proxy.enable アプレットのダウンロード時にHTTPプロキシを使用するかどうかを指 定します。 ・ true:HTTPプロキシを使用します。 ・ false:HTTPプロキシを使用しません。 初期設定値:未設定(ブラウザのプロキシ設定がそのまま使用されま す) Javaコンソー ルの表示/ 非表示の指 定 jbk.plugin.proxy.http.host アプレットのダウンロード時に使用するHTTPプロキシのホスト名を指 定します。 初期設定値:未設定(ブラウザのプロキシ設定がそのまま使用されま す) jbk.plugin.proxy.http.port アプレットのダウンロード時に使用するHTTPプロキシのポート番号を 指定します。 初期設定値:未設定(ブラウザのプロキシ設定がそのまま使用されま す) jbk.plugin.proxy.override HTTPプロキシを使用せずに接続するアドレスのリストを指定します。 初期設定値:未設定(ブラウザのプロキシ設定がそのまま使用されま す) jbk.plugin.proxy.secure.host HTTP通信時に使用するプロキシのホスト名を指定します。 初期設定値:未設定(ブラウザのプロキシ設定がそのまま使用されま す) jbk.plugin.proxy.secure.port HTTP通信時に使用するプロキシのポート番号を指定します。 初期設定値:未設定(ブラウザのプロキシ設定がそのまま使用されま す) jbk.plugin.console.visible JBKプラグインの起動時にJavaコンソールを表示するかどうかを指定 します。 ・ true:起動時にJavaコンソールを表示します。 ・ false:起動時にJavaコンソールを表示しません。 初期設定値:false アプレットのダ ウンロード方 式の指定 jbk.plugin.protocol.http アプレットのダウンロード方式を指定します。 ・ java:Javaのネットワーク通信クラスを用いてアプレットをダウンロー ドします。 ・ native:ブラウザの機能を用いてアプレットをダウンロードします。 ・ hybrid:クラスファイルとJARファイルはnative方式、その他のファ イルはjava方式でダウンロードします。 初期設定値:hybrid HTTPSプロト コルによるア プレットのダウ ンロード方式 の指定 jbk.plugin.protocol.https HTTPSプロトコルによるアプレットのダウンロード方式を指定します。 ・ java:HTTPSプロトコルによるダウンロードができなくなります(この 設定は将来のための予約語です)。 ・ native:ブラウザの機能を用いてHTTPSプロトコルによるダウン ロードを行います。 ・ hybrid:クラスファイルとJARファイルのみをnative方式でダウン ロードします。その他のファイルはダウンロードできません。 - 59 - 設定情報 キー 値と値の説明 初期設定値:hybrid アプレットのダ ウンロード状 態の表示/ 非表示の指 定 jbk.plugin.applet.showmessage アプレットの 独自キャッ シュの設定 jbk.plugin.www.plugin_cache.enable アプレットのダウンロード状態を表示するかどうかを指定します。 ・ true:ダウンロード状態を表示します。 ・ false:ダウンロード状態を表示しません。 初期設定値:true 独自キャッシュを使用するかどうかを指定します。 ・ true:独自キャッシュを使用します。 ・ false:独自キャッシュを使用しません。従来どおりブラウザキャッ シュが使用されます。 初期設定値:false jbk.plugin.www.plugin_cache.dir 独自キャッシュの保存フォルダを指定します。 初期設定値:${user.home}/applet_cache ※セパレータは“/”を使用してください。 jbk.plugin.www.plugin_cache.dir.freespace 独自キャッシュの保存フォルダの空き容量を指定します。 初期設定値:保存フォルダがあるドライブの総容量の1% jbk.plugin.www.plugin_cache.update 独自キャッシュの更新条件を指定します。 ・ newer:Webサーバ上のファイルの更新日時がキャッシュ内のファ イルの更新日時よりも新しい場合に、キャッシュの更新を行いま す。 ・ diff:Webサーバ上のファイルの更新日時がキャッシュ内のファイ ルの更新日時と異なる場合に、キャッシュの更新を行います。 初期設定値:newer jbk.plugin.www.plugin_cache.accelerate 更新条件がnewerの場合に高速化モードを使用するかどうかを指定 します。 ・ true:高速化モードを使用します。 ・ false:高速化モードを使用しません。 初期設定値:false jbk.plugin.www.plugin_cache.twopass キャッシュファイルがある場合にWebサーバへの問い合わせとダウン ロードを別に行うかどうかを指定します。 ・ true:Webサーバへの問い合わせとダウンロードを別に行います。 ・ false:Webサーバからダウンロードした結果を元にキャッシュの使 用を判断します。 初期設定値:false JavaScript連 携 jbk.plugin.sw.script.enable JavaScriptからアプレットのメソッドの呼出しを行うかどうかを指定しま す。 ・ true:アプレットのメソッド呼出しを使用します。 ・ false:アプレットのメソッド呼出しを使用しません。 初期設定値:false ダウンロード 通知 jbk.plugin.interface.download_notify ダウンロード通知機能を使用するための、 com.fujitsu.jbk.plugin.browser.PluginDownloadNotifyインタフェース を実装したクラスを指定します。 初期設定値:なし - 60 - 設定情報 トラブル シューティン グ (このプロパ ティは必要に 応じて追加し てください) キー jbk.plugin.debug.showvmmsg 値と値の説明 Java VMのメッセージを出力するかどうかを指定します。アプレット実 行時に[Ctrl]+[Break]を押下することにより、フルスレッドダンプが出 力されます。VM起動オプションに-verbose:gcを追加してGCのログ を出力する場合も、この設定が必要です。 ・ true:メッセージを出力します。 ・ false:メッセージを出力しません。 初期設定値:false jbk.plugin.debug.tracedir Java VMのメッセージの出力先フォルダを指定します。出力されるファ イルは“jbktrace.?”(?は0~9の数字)となります。 出力先フォルダ名に空白文字が含まれている場合は、出力先フォル ダ名を'"'(ダブルクォーテーション)で囲んで指定してください。 jbk.plugin.debug.console_log Javaコンソールの出力をファイルに保存するかどうかを指定します。 ・ true:ファイルに保存します。 ・ false:ファイルに保存しません。 初期設定値:false jbk.plugin.debug.console_log.dir Javaコンソールの出力ファイルを保存するフォルダ名を指定します。 初期設定値:${jbk.home}/console_log ※セパレータは“/”を使用してください。 jbk.plugin.debug.console_log.history Javaコンソールの出力ファイルを保存するファイル数を指定します。 初期設定値:なし(制限なし) jbk.plugin.debug.console_log.size Javaコンソールの出力ファイルの1つあたりの最大ファイルサイズを指 定します。 初期設定値:なし(制限なし) jbk.plugin.debug.console_log.header Javaコンソールの出力ファイルに時刻を示す行ヘッダを追加するか どうかを指定します。 ・ true:行ヘッダを出力します。 ・ false:行ヘッダを出力しません。 初期設定値:false その他 (このプロパ ティは必要に 応じて追加し てください) jbk.plugin.sw.applet.delay ブラウザのウィンドウが閉じられるときにアプレットの終了が完了する までの待機を行うかどうかを指定します。 ・ true: アプレットが終了するまで待機します。 ・ false:待機せず、ウィンドウを閉じます。 初期設定値:true jbk.plugin.sw.classpath.use_env Java VMが環境変数“CLASSPATH”の設定を使用するかどうかを指 定します。 ・ true:環境変数“CLASSPATH”を使用します。 ・ false:環境変数“CLASSPATH”を使用しません。 初期設定値:true jbk.plugin.sw.trustproxy URLの名前解決にプロキシサーバが返す名前を使用するかどうかを 指定します。 起動オプションに “-DtrustProxy=<true|false>” を追加 します。 ・ true:trustProxyプロパティにtrueを設定します。 ・ false:trustProxyプロパティにfalseを設定します。 - 61 - 設定情報 キー 値と値の説明 初期設定値:false jbk.plugin.sw.fbc.force_activate ブラウザがアクティブ化されたときにアプレットをアクティブ状態にす るかどうかを指定します。 ・ true:アプレットをアクティブ状態にします。 ・ false:アプレットをアクティブ状態にしません。 初期設定値:false jbk.plugin.ie.connection.max ブラウザの機能を使用してダウンロードを行うときの最大同時接続数 を設定します。 ブラウザのデフォルト値よりも小さい値を指定しても無効になります。 その場合は、以下を参照して設定してください。 http://msdn.microsoft.com/en-us/library/cc304129(v=vs.85).aspx 初期設定値:32 jbk.plugin.sw.event.initial_active 非アクティブ状態のウィンドウのアプレットが開始されたときに、 PLUGINAPPLET_ACTIVATEのPluginAppletEventを通知するかど うかを指定します。 ・ true:PluginAppletEventを通知します。 ・ false:PluginAppletEventを通知しません。 初期設定値:false 2.10 インストールしたJBKプラグインを判別する方法 クライアントマシンにJBKプラグインがインストールされているかどうかを、Webページで判別する方法を紹介します。 VBScriptやJavaScriptを用いることで、クライアントマシン上のJBKプラグインのバージョン番号を確認することができます。 これにより、WebブラウザでWebページを開いたときに、最新のJBKプラグインがインストールされていない場合に、 インストーラのダウ ンロードを促すWebページに移動するといった使い方ができます。 クライアントにJBKプラグインがインストールされているかどうかを判別するスクリプトの例を、以下に示します。 表2.5 JBKプラグインのインストールを判別するスクリプトの例 <HTML> <HEAD> <TITLE>JBKプラグインのインストールを確認するページ</TITLE> <!-- Internet Explorer用スクリプト --> <SCRIPT LANGUAGE="VBScript"> <!-' 最新のJBKプラグインのバージョン番号 Const PLG_REQUIRED_VERSION = 9.01 ' インストーラ用WebページのURL Const PLG_INSTALL_URL = "http://foo.fujitsu.com/index.html" Dim CurrentVersion CurrentVersion = 0.0 ' インストールされているJBKプラグインのバージョン番号を取得する ' JBKプラグインがインストールされていない場合はGetPluginVersion()が ' エラーを返すが、"On Error Resume Next"を指定しているので、 ' CurrentVersionが0.0のまま処理は続行する On Error Resume Next CurrentVersion = GetPluginVersion() ' 最新のJBKプラグインがインストールされていない場合 - 62 - If CurrentVersion < PLG_REQUIRED_VERSION Then ' インストール手順を説明するWebページに移動するかどうかを ' ユーザに問い合わせる Dim Msg1, Msg2 Msg1 = "最新のJBKプラグインをインストールする必要があります。" Msg2 = "インストール手順を説明するWebページに移動しますか?" Dim ok ok = MsgBox (Msg1 + Chr(13) + Msg2, vbOKCancel) ' インストール手順を説明するWebページに移動する If ok = vbOK Then document.location = PLG_INSTALL_URL End If End If ' ' インストールされているJBKプラグインのバージョン番号を取得する関数 ' Function GetPluginVersion Const PLG_NAME = "F5CXWPIE.JBKPluginCtrl.1" Dim Plugin Set Plugin = CreateObject(PLG_NAME) GetPluginVersion = Plugin.version End Function --> </SCRIPT> </HEAD> <BODY> JBKプラグインのインストール確認 </BODY> </HTML> ・ クライアントにJBKプラグインがインストールされていない場合、あるいは、インストールされているJBKのバージョンが9.01よりも古い 場合にメッセージボックスを表示して、インストーラ用のWebページに移動する、という処理を行っています。 ・ Internet Explorer用の処理はVBScriptで記述していますが、JavaScriptで記述しても有効となります。 VBScriptやJavaScriptの詳細は、それぞれのドキュメントを参照してください。 ・ スクリプト内で使用するJBKプラグインのバージョン番号を求め方は、以下のとおりです。 1. エクスプローラ上で、(JBKプラグインのインストールフォルダ)\bin\f5cxwpie.ocxをマウスで右クリックします。 2. メニューが表示されるので[プロパティ]を選択します。 3. f5cxwpie.ocxのプロパティが表示されるので、[バージョン情報]タブを選択します。 4. 詳細項目の[製品バージョン]を選択します。 5. [情報]欄にVL表記が表示されます。JBKプラグインのバージョン番号はこのVL表記から以下の計算式で求められます。 (バージョン番号)=(V)+((L)/1000) ※(V)はVL表記のバージョン部、(L)はVL表記のレベル部 - V9.2.0の場合は、V9.2L00と置き換えてください。バージョン番号は 9.2+(0/1000)=9.2 となります。 - V11.0の場合は、V11.0L00と置き換えてください。バージョン番号は 11.0+(0/1000)=11.0 となります。 ・ 同じスクリプトを複数のHTMLファイルで使用する場合は、HTMLのSCRIPT要素が便利です。 <SCRIPT LANGUAGE="VBSCript" SRC="xxx.js"> - 63 - SCRIPT要素の詳細は、HTML関連のドキュメントを参照してください。 注意 <BODY>~</BODY>内にJBKプラグインを使用するためのタグ(<OBJECT>あるいは<EMBED>)を記述すると、 クライアントマシンに JBKプラグインがインストールされている場合に、スクリプトによるバージョン確認の結果に関わらず、JBKプラグインが起動されます。 アプレットを使用しないWebページに、スクリプトを記述するようにしてください。 - 64 - 第3章 GUIライブラリ ボタン、ラベル、フレーム及びダイアログなどのJavaアプリケーションのグラフィカルユーザインタフェース(GUI)を実現するクラスを提供 します。 また、画面を動的に生成・破棄しながら画面遷移を実現する画面操作ライブラリも提供します。画面操作ライブラリでは、HeavyWeight とLightWeightの両方の部品を提供しています。メモリ資源の厳しい環境ではLightWeight部品の使用を推奨します。 GUIライブラリの詳細については、“GUIライブラリ ユーザーズガイド”を参照してください。 3.1 日本語入力 機能補完 JBKはインストール時に、JDK/JREの日本語入力機能を補完します。GUIライブラリの文字入力用の部品に対して、以下の日本語入 力機能を有効にします。 ・ 入力モード機能の指定(文字種の指定、文字の大きさ指定) ・ 直接入力(フィールドのキャレット位置での文字列変換) 日本語入力機能について 日本語入力機能は、オペレーティングシステムに依存した処理にて実現しています。このため、本機能を使用した場合、100% Pure Javaではなくなります。 注意 Windows 8 / Windows Server 2012において、GUIライブラリの文字入力部品で以下の操作をすると、setInputMode(int mode)で指 定した入力モードに切り替わらない場合があります。 1. 以下のいずれかの部品に対してsetAutoIME(true)を指定する。 ・ JFChoice ・ JFField ・ JFFieldDate ・ JFFieldDouble ・ JFFieldFilled ・ JFFieldFilledDate ・ JFFieldLong ・ JFFieldString ・ JFFieldRichString ・ JFTextArea 1. 1.の部品に対してsetInputMode(int mode)メソッドで日本語入力システムの入力モードを指定する。 2. メモ帳等の他のアプリケーションから、2.の部品にフォーカスを移動する。 [対処方法] 以下の手順で、入力の切り替え機能の設定を変更してください。 1. [コントロール パネル] を開きます。 2. [時計、言語、および地域] から [言語]-[詳細設定] をクリックします。 3. [入力方式の切り替え] の[アプリごとに異なる入力方式を設定する] チェックボックスをオンにします。 - 65 - 4. [保存] をクリックします。 参考 ・ 直接入力は、Java SEのInput Method Frameworkを使用して実現しています。 ・ 日本語入力機能の詳細は、パッケージ説明書を参照してください。 日本語入力時のフォーカス移動 日本語入力において、インライン編集中にフォーカスを移動したり、別アプリケーションへの切替えを行ったりすると、フォーカスが切り 替えた先に移動しない、入力中の文字が残るという現象が発生します。このため、インライン編集の完了後に、フォーカスの移動、別ア プリケーションへの切替えを行ってください。 日本語入力システムでのUNICODE入力 以下の日本語入力システム(IME)からUNICODEを入力することができるように、製品添付のJava SEに修正を施しています。 ・ MS IME 2002 ・ MS IME 2003 ・ MS IME Ver. 10 ・ MS Office IME 2007 ・ MS Office IME 2010 ・ ATOK 2010 ・ ATOK 2011 ・ Japanist 2003 また、IMEからUNICODEを入力することができるGUI部品は、以下のとおりです。 ・ JFField - JFFieldString - JFFieldLong - JFFieldDate - JFFieldDouble - JFFieldFilled - JFFieldRichString ・ JFTextArea 3.2 ユーザ定義文字の表示 GUIコンポーネントでユーザ定義文字を表示する場合、以下の処置が必要となります。 ・ JDK/JREのjre\lib下のフォント定義ファイル(font.properties.ja)にて、使用するフォント情報の定義 ・ JDK/JREのjre\lib\fontsへの、外字フォントファイルの格納 詳細は、JDKドキュメンテーションの基本機能の「国際化 (internationalization)」を参照してください。 3.3 Webブラウザからの連続印刷 Webブラウザから印刷を連続して行う場合に、コンポーネントが印刷されないことがあります。 - 66 - 3.4 補助文字の入力 JBK V5.1L10より前のGUIライブラリでは、UNICODEにおける補助文字(コードポイントがU+10000~U+10FFFFの範囲の文字)は使用 できません。GUI部品において、java.lang.Stringまたはchar[]をパラメータに持つコンストラクタとメソッドを実行する際に、補助文字を含 む文字列をパラメータに指定した場合は、補助文字を除外したうえで処理されます。また、画面上で次のGUI部品に対して補助文字 を含む文字列を入力した場合、補助文字を除外した文字列が入力されます。 ・ JFField - JFFieldString - JFFieldLong - JFFieldDate - JFFieldDouble - JFFieldFilled - JFFieldRichString ・ JFTextArea 3.5 Java SEに起因する問題点 下表は、Java SEに起因する問題点の一覧です。 項 番 注意事項 備考 1 文字を表示するクラス(JFTableViewやJFFieldStringなど)で は、"\"はバックスラッシュ("\")で表示されます。 表示上だけの問題です。 2 JFImageButtonクラス上で、マウスを押したまま高速でカーソルを移 動し、その後マウスボタンを離した後、再び、JFImageButtonクラス 上へカーソルを移動すると、マウスを押した表示になることがありま す。 マウスを押したまま高速でカーソルを移動しないでくださ い。 3 入力系でない部品上でも、カーソルの形状が"|"となることがありま す。 表示上だけの問題です。 4 JFListViewでスクロール時にリスト下部に、背景が表示されることが あります。 表示上だけの問題です。 5 キャレットを表示する部品(JFFieldStringなど)でキャレット点滅のタ イミングで言語バーがちらつくことがあります。 表示上だけの問題です。Java VM起動時のオプション に、“-Dsun.java2d.noddraw=true”を指定してください。 6 文字列を描画する部品(JFGroupbox等)にて文字列が描画されな いことがあります。 表示上だけの問題です。Java VM起動時のオプション に、“-Dsun.java2d.noddraw=true”を指定してください。 7 フォーカス枠描画の際に、正しく描画が実行されず白抜きの状態 になることがあります。 表示上だけの問題です。最底部をJFPanelにして部品を 配置することにより回避可能です。 8 AWT EventQueue のイベントディスパッチスレッド以外のスレッドに て、コンテナから以下の条件に合致するGUI部品を削除すると、 デッドロックが発生する場合があります。 ・ 一度でもツールチップを表示したGUI部品 ・ 一度でもポップアップを表示したJFChoice AWT EventQueue のイベントディスパッチスレッド以外の スレッドにて、コンテナからGUI部品を削除しないでくだ さい。 9 java.awt.Buttonをダブルクリックしたときに入力部品にフォーカスを 設定しても文字の入力ができなくなることがあります。(JDK6の場 合) JBKのGUIライブラリのJFImageButtonなどのライトウェイ トボタン部品を使用してください。 - 67 - 第4章 ダウンロードインストーラ ダウンロードインストーラについて説明します。 4.1 ダウンロードインストーラとは Windowsクライアントマシンに、JBKプラグイン、GUIライブラリおよびJREをインストールするインストーラを作成する機能を提供します。 ダウンロードインストーラで作成したインストーラをWebサーバに格納することにより、WindowsクライアントにJBKプラグイン、GUIライブ ラリおよびJREを配布することができます。 図4.1 ダウンロードインストーラの使用方法 1. ダウンロードインストーラでインストーラを作成(1-a) 2. 1.で作成したインストーラをWebサーバに格納(1-b) 3. 各クライアントにJBKプラグイン、GUIライブラリおよびJREをダウンロード(2-a) 4. インストーラを実行してインストール(2-b) ダウンロードインストーラの機能 ・ インストールするJREのバージョンが選択できます ダウンロードインストーラでは、JRE 6およびJRE 7のインストールをサポートしています。 必要最低限のJREだけをダウンロードイン ストーラに添付することで、ダウンロードインストーラのサイズを最適化できます。 ・ JBKプラグイン、GUIライブラリをインストールします GUIライブラリは、選択したJREと同じバージョンのライブラリをインストールします。 ・ JBKプラグインの設定ファイルがカスタマイズできます インストーラをWebサーバに格納する際に、あらかじめJBKプラグインの設定ファイル(jbkplugin.propertiesとjbkplugin.policy)をカス タマイズしておくことができます。これにより、カスタマイズした設定ファイルを、すべてのクライアントマシンに配布することができま す。 - 68 - ・ サイレントインストールができます サイレントインストールとは、インストール時にダイアログボックス経由でユーザからの応答を受けることなく、自動的にインストール を行う機能です。 すべてのクライアントマシンで、インストール先のフォルダやインストールオプションを共通にする場合には、サイ レントインストールを使用できます。 注意 クライアントマシンの台数について ダウンロードインストーラで作成したインストーラを使ってインストールできるクライアントマシンの台数は、JBK運用環境が組み込まれて いる製品1本につき1台です。複数のクライアントマシンにインストールする場合には、JBK運用機能が組み込まれている製品をクライ アントマシンの台数分だけ購入してください。 4.2 インストーラの作成方法 開発環境におけるインストーラの作成方法を説明します。 インストーラを作成するとき、以下のカスタマイズを行うことができます。 ・ 必要なバージョンのJREを選択してインストーラに添付する。 ・ JBKプラグインの設定ファイルをカスタマイズする。 ・ サイレントインストール機能を使用する場合には、サイレントインストール用の応答ファイルを作成する。 4.2.1 ソフトウェアの用意 インストーラを作成するために、以下のソフトウェアが必要です。 ・ ダウンロードインストーラ構成キット “(Interstage Studio Standard-J Editionのインストールフォルダ)\IDE\jbkplgdi”フォルダに、ダウンロードインストーラ構成キットが格 納されています。 ダウンロードインストーラ構成キットには、以下のフォルダとファイルが含まれています。 フォルダ名 フォルダに格納されているファイルの説明 jbkplgdi コピーツール (インストーラに添付するコンポーネントをコピーするツール) jbkplgdi\mainins インストーラのメイン部を構成するファイル jbkplgdi\jbkplug JBKプラグインのインストールに必要なファイル jbkplgdi\jre6 JRE 6のインストールに必要なファイル ・ アーカイバ インストーラをWebサーバに格納するときには、カスタマイズしたインストーラを1つのファイルに圧縮格納(アーカイブ)する必要が あります。このためのアーカイブツール(アーカイバ)が必要となります。 フォルダ構成を保持できれば、どのアーカイバを用いてもかまいません。当社製あるいは他社製のアーカイバの中から、システム 要件に最も合うものを選んでください。 4.2.2 作成手順 インストーラの作成は、以下の手順で行います。 1.インストーラに添付するコンポーネントの選択 インストーラに添付するコンポーネントを選択するために、以下のコピーツールを管理者権限で実行してください。 - 69 - (Interstage Studio Standard-J Editionインストールフォルダ)\IDE\jbkplgdi\Setup.exe 上記のコピーツールを実行すると、[JBK Download Tool]ダイアログが表示されます。 1. [インストール先の選択] インストーラに添付するコンポーネントを格納する作業フォルダを選択してください。 注意 インストール先について ダウンロードインストーラでは、インストール先の初期フォルダをシステムの環境変数TEMPで設定されているフォルダとしていま す。 環境変数で設定されているフォルダは、Windowsのエクスプローラの設定によって、表示されない場合があります。表示されな い場合は、エクスプローラで表示可能なフォルダをご確認のうえ、インストール先をその表示可能なフォルダに変更してくださ い。 2. [機能の選択] インストーラに添付するJREのバージョンを選択してください。 複数のJREをインストーラに添付して、クライアントマシンごとにインストールするJREを変えるといった使い方もできます。 - JRE 6 - JRE 7 3. [ファイルコピーの開始] ファイルコピーの開始前にインストーラに添付するコンポーネントを確認してください。 このダイアログでボタン[次へ]をクリックすると、ファイルのコピーが開始されます。 4. [セットアップの完了] 作業フォルダへのファイルのコピーは完了すると、このダイアログが表示されます。 2.作業フォルダの確認 コピーツールを実行すると、作業フォルダに、以下のファイルがコピーされます。 フォルダ名 フォルダに格納されているファイルの説明 (作業フォルダ) インストーラのメイン部 (作業フォルダ)\jbkplug JBKプラグインのインストールに必要なファイル (作業フォルダ)\jre6 JRE 6のインストールに必要なファイル (作業フォルダ)\jre7 JRE 7のインストールに必要なファイル 注意 作業フォルダのサブフォルダについて インストーラのメイン部は、サブフォルダの名前で添付されているコンポーネントを判別します。 このため、サブフォルダ名は絶対に変 更しないでください。 3.JBKプラグインの設定ファイルのカスタマイズ コピーツールでJBKプラグインを選択した場合、作業フォルダ内の“jbkplug\setupdir\0011”フォルダに、 JBKプラグインの設定ファイ ル(jbkplugin.propertiesとjbkplugin.policy)が格納されています。 必要に応じてこれらのファイルを編集して、カスタマイズしてくださ い。 編集して、カスタマイズした設定ファイルは、“jbkplug”フォルダに格納してください。 - 70 - ・ 設定ファイルのカスタマイズが必要な場合 - セキュリティ権限の設定が必要な場合 jbkplugin.policyファイルに、セキュリティ権限を記述してください。 - クラスパスの設定が必要な場合 アプレット実行時に、クライアントマシン上のクラスファイルやJARファイルを使用する場合、 jbkplugin.propertiesのJava VMの 起動オプションに、これらのクラスファイルやJARファイルへのクラスパスを指定してください。 - 複数のJREをインストールして使用する場合 ク ラ イ ア ン ト マ シ ン に 複 数 の JRE を イ ン ス ト ー ル し 、 ア プ レ ッ ト に よ っ て 使 用 す る JRE を 切 り 替 え た い 場 合、 jbkplugin.properties.xxx(xxxは任意の文字列)というファイルを複数個作成して、 JBKプラグインの設定ファイルの切替え機能 を使用することができます。 設定ファイルの切替え機能の詳細は、JBKプラグインの“2.3.12 設定ファイルの切り替え”を参照してください。 注意 インストーラは、jbkplugフォルダにある設定ファイルをクライアントマシンにインストールします。 JBKプラグインの設定ファイルは必ずjbkplugフォルダに格納してください。 4.サイレントインストール用の応答ファイルの作成 サイレントインストール機能を使用する場合、応答ファイルを作成してください。 サイレントインストール機能を使用しない場合は、応答ファイルを作成する必要はありません。 サイレントインストール機能の詳細は、“4.4 サイレントインストール機能”を参照してください。 5.作業フォルダのアーカイブ アーカイバを用いて、作業フォルダ内のファイルをサブフォルダごと圧縮して、1つのファイルに格納します。 このとき、作成した圧縮ファイルを解凍したときにサブフォルダの構成がそのまま元に戻るような形式で圧縮してください。この圧縮ファ イルをWebサーバに格納すれば、インストーラの作成は完了です。 なお、作業フォルダにコピーしたファイルが必要なくなった場合は、削除してください。 4.3 インストーラの実行方法 インストール作業は、コンピュータの管理者またはAdministratorsグループのメンバで実施してください。 1. Webサーバ上のインストーラを、運用環境(クライアントマシン)にダウンロードしてください。 2. インストーラは圧縮形式ファイルなので、そのファイルを解凍してください。 作業フォルダを作成したうえで、圧縮形式ファイルを解凍するのをおすすめします。 3. ファイルを解凍するとフォルダ内にSetup.exeが生成されます。 このSetup.exeを実行して、インストールを開始してください。 注意 Setup.exeについて インストールの開始には必ずファイルを解凍したフォルダにあるSetup.exeを実行してください。各コンポーネントのインストール用 ファイルを格納したサブフォルダ(jbkplugやjre6など)の中にもSetup.exeが生成されますが、サブフォルダ内のSetup.exeを実行し ても何もインストールされません。 - 71 - 4. [JBKセットアップ]ダイアログ が表示されます。 a. [JBKセットアップへようこそ] [次へ]ボタンをクリックします。 b. [使用許諾契約] [次へ]ボタンをクリックします。 c. [インストール先の選択] ファイルをインストールするフォルダを指定してください。 ここで選択したフォルダには、以下のサブフォルダが作成されます。 作成されるサブフォルダ名 インストールされるコンポーネント jre6 JRE 6 jre7 JRE 7 注意 [インストール先のフォルダ]について インストール先のフォルダ名に指定できる長さは、200文字(半角の場合)以内です。なお、インストールフォルダ名 に、":"、";"、"/"、"*"、"?"、"\"、"<"、">"、"("、")"、"|"、"#"、"%"、"^"、"!"の文字は指定しないでください。 d. [機能の選択] 実際にインストールするJREを選択してください。 e. [セットアップタイプ] 複数バージョンのJREをインストールする場合に、このダイアログが表示されます。 ダイアログには[デフォルトで使用する JREを選択してください]というメッセージが表示されます。 ここで選択したJREがJBKプラグインがデフォルトで使用するJRE となります。 JBKプラグインの設定ファイルに使用するJREの指定がない場合には、JBKプラグインはこのデフォルトJREを 用いてアプレットを実行します。 なお、JREを1種類しかインストールしない場合には、そのJREがデフォルトのJREとなります。 f. [ファイルコピーの開始] ファイルコピーの開始前にインストールするコンポーネントを確認してください。このダイアログでボタン[次へ]をクリックす ると、ファイルのコピーが開始されます。 g. [InstallShield Wizardの完了] - [はい]を選択するとすぐにマシンが再起動されます。 - [いいえ]を選択するとマシンは再起動されません。こちらを選択した場合には、JBKプラグインを使用する前に必ずマ シンを再起動してください。 以上の操作で、JBKプラグイン、GUIライブラリおよびJREのインストールは完了です。 インストール後はダウンロードしたインストーラの圧縮形式ファイルおよびそのファイルを解凍してできたファイルは削除してかまいませ ん。 注意 インストール時の設定の選択を誤ったなどの理由で、インストール直後にアンインストールを行うような場合にも、必ずインストール後に マシンを再起動してからアンインストールを行ってください。再起動しなかった場合は、アンインストールが正しく行われない場合があり ます。 - 72 - 4.4 サイレントインストール機能 ダウンロードインストーラで、サイレントインストール機能を実現する方法を説明します。 サイレントインストールとは、インストーラ実行時にダイアログを表示してユーザからの応答を受けることなく、自動的にインストールを行 う機能です。 インストール先のフォルダやインストールオプションがすべてのクライアントマシンで同じである場合には、この機能が便利 です。 この機能を使用すると、ユーザのインストール時の手間が軽減されるとともに、誤った指定によるインストールミスを防ぐことがで きます。 作成方法 1. インストーラの作成 インストーラの作成方法の“4.2.2 作成手順”に従って、JBKプラグインの設定ファイルのカスタマイズまでを行ってください。 2. 応答ファイルの作成 コマンドプロンプト上で、“-r”オプションをつけてインストーラのメイン部のSetup.exeを実行して、応答ファイルを作成してくださ い。 C:\TEMP>Setup.exe -r 上記のコマンドを実行すると、ダウンロードインストーラは応答ファイル作成モードで実行されます。 このモードでは、“4.3 インストーラの実行方法”の手順4からの説明と同じダイアログが表示されますが、実際のインストールは行 いません。 このダイアログでの選択結果が、応答ファイル(setup.iss)に記録されるだけです。 表示されるダイアログに従って、ク ライアントマシンにインストールする際のインストール先フォルダやインストールオプションなどの情報を入力してください。 注意 - 応答ファイル作成モードの[コンポーネントの選択]ダイアログでは、インストールするJREをすべて選択状態にしてください。 いくつかを非選択にしても、サイレントインストール時には正常にインストールされません。インストールするJREを選択したい 場合は、インストーラの作成方法の“4.2.2 作成手順”で、あらかじめインストーラに添付するJREを選択してください。 - 応答ファイル作成モードの最後の[セットアップの完了]ダイアログで[はい]を選択すると、実際にクライアントマシンでサイレ ントインストールを行った後にマシンが自動的に再起動されます。実際のインストールでマシンを再起動したくない場合に は、応答ファイル作成モードの最後の[セットアップの完了]ダイアログで[いいえ]を選択してください。 3. 応答ファイルのコピー 応答ファイル(setup.iss)はWindowsフォルダ(例:C:\Windows)に作成されます。 このファイルをインストーラのカスタマイズを行っ ている作業フォルダにコピーしてください。 注意 応答ファイルは、必ずインストーラのメイン部のSetup.exeと同じフォルダにコピーしてください。 別のフォルダにコピーした場合は、サイレントインストールの機能は使用できません。 4. 作業フォルダのアーカイブ インストーラの作成方法の“4.2.2 作成手順”に従って、作業フォルダをアーカイブします。 以上の作業で、サイレントインストール機能が使用できるようになります。 注意 システム開発者の作業が完了した後について 応答ファイル作成モードで本インストーラを実行すると、ファイルのインストールは行われませんが、Windowsのレジストリには通常のイ ンストールが行われたのと同じ情報が記録されます。 - 73 - これらのレジストリ情報を削除するために、システム開発者の作業が完了した後にコントロールパネルの[アプリケーションの追加と削 除]を選択し、その中から[JBK Download Installer]を選択してアンインストールを行ってください。 実行方法 サイレントインストールを行う場合は、以下の手順で行います。 1. Webサーバ上のインストーラを、運用環境(クライアントマシン)にダウンロードしてください。 2. インストーラは圧縮形式ファイルなので、そのファイルを解凍してください。 なお、作業フォルダを作成したうえで、圧縮形式ファイルを解凍するのをおすすめします。 3. ファイルを解凍するとフォルダ内に生成されたSetup.exeを、“-s”オプションをつけて実行してください。 C:\TEMP>Setup.exe -s “-s”オプションでインストーラを実行すると、インストーラはサイレントモードで実行されます。 このモードで実行されたインストー ラは、ダイアログを表示してユーザからの応答を受け取る代わりに、 応答ファイルの記録を参照して、インストールを実行します。 ポイント ・ アーカイバによっては、ファイル解凍後に自動的にコマンドを実行する機能を持つものもあります。 このアーカイバを使用すれば、 ファイル解凍後に自動的に“Setup.exe -s”を実行できるため、 解凍と同時にサイレントインストールを開始することができます。 ・ サイレントインストールが終了すると、その実行結果が、Setup.exeと同じフォルダのログファイル(Setup.log)に記録されます。 このた め、インストールが正常終了したかどうかを、ログファイル内の次の行で確認することができます。 [ResponseResult] ResultCode=0 インストールに成功した場合は、ResultCodeが0になります。 インストールに失敗した場合は、ResultCodeに0以外の値が記録され ます。 この場合は、応答ファイルに異常がある可能性がありますので、Setup.exeを“-s”オプションなしで実行して、通常の手順で インストールを行ってください。 4.5 ダウンロードインストーラの注意事項 ダウンロードインストーラを使用する上での注意事項を説明します。 ・ Windows 7で、ダウンロードインストーラを作成またはダウンロードインストーラを実行した場合、プログラム互換性アシスタントのダ イアログボックスが表示されることがあります。ダイアログボックスが表示された場合は、[キャンセル]をクリックして画面を閉じてくだ さい。 ・ 製品のインストーラでJBKをインストールした後に、ダウンロードインストーラで作成したインストーラでインストールする場合、JBKの インストールフォルダと同じフォルダにインストールすることはできません。必ず別のフォルダにインストールしてください。 ・ JBKプラグインを使用する場合、以下の製品または機能がインストールされている環境に、「ダウンロードインストーラでJBKプラグ イン」をインストールした場合は、「ダウンロードインストーラでインストールしたJBKプラグイン」が有効となり、すでにインストール済 のJBKプラグインは動作しません。 - Interstage Application Server クライアントパッケージ - Interstage Studio Standard-J Edition - Interstage Studio クライアント運用パッケージ また、「ダウンロードインストーラ」をアンインストールした場合は、上記のJBKプラグインも動作しません。 ・ 旧バージョンから上書きインストールをする場合は、Interstage Apworks 8.0.0以降およびInterstage Studio V9.0.0以降で提供され ているダウンロードインストーラまたは、Interstage Application Server 8.0.0以降で提供されているクライアントダウンロード用機能が インストールされている環境でのみ実行してください。 - 74 - ・ 旧バージョンから上書きインストールする場合は、すでにインストール済のコンポーネントをすべて選択して実行してください。 ・ 上書きインストールでは、インストール先を指定できません。すでにインストールされているインストール先にファイルがコピーされ ます。 ・ 旧バージョンのダウンロードインストーラでJBKプラグインやJREをインストールされている環境に新しいダウンロードインストーラで JBKプラグインやJREを上書きインストールしようとすると上書きを確認するメッセージが表示されます。 ・ ダウンロードインストーラでは、特定のコンポーネントのみを削除することはできません。削除する場合には、ダウンロードインストー ラをアンインストールしてください。 ・ ダウンロードインストーラをアンインストールする場合には、コントロールパネルの[アプリケーションの追加と削除]を選択し、インス トールされているプログラムから[JBK Download Installer]を選択して行ってください。 ・ ダウンロードインストーラのインストールまたはアンインストール時の不測の事態により、以降再インストールまたはアンインストール が正常に動作しなくなった場合、以下のファイルを参照して、作業を実施してください。 (Interstage Studio Standard-J Editionのインストールフォルダ) \IDE\jbkplgdi\mainins\HowToDel.txt - 75 - 第5章 注意事項 JBKを使用するにあたっての共通の注意事項を説明します。 5.1 セキュリティ上の注意事項 ローカルリソースへのアクセス 以下のクラスでは、クリップボードへのアクセスまたは、ActiveXコントロールやネイティブライブラリのロードを行います。 ・ GUI ラ イ ブ ラ リ の JFFieldDate 、 JFFieldDouble 、 JFFieldFilled 、 JFFieldLong 、 JFFieldString 、 JFTableView 、 JFToolbar 、 JFTree、 JFTextAreaおよびJFChoice ・ ラッパーで作成したラッピングクラス 上記のクラスがローカルマシンになく、Webサーバからダウンロードするアプレット実行する場合、ローカルリソースへのアクセスが制限 されます。 このようなアプレットを使用する場合は、以下のどちらかの処置を行ってください。 ・ アプレットを署名付きアプレットにする ・ ポリシーファイル(java.policy)に必要最低限のセキュリティ権限を追記する 一般にActiveXコントロールやネイティブライブラリは、クライアントマシンの資源へ自由にアクセスできるため、セキュリティ上の問題を 内包します。 この問題を回避するため、ラッピングクラスを使用するアプレットの運用は、イントラネット内で行ってください。 また、上記のGUIライブラリおよびラッパーのクラスでは、Netscapeの認証クラスを呼びだす処理が含まれています。このため、JBKが提 供している公開ソースに対してコンパイルを行う場合、Netscape社から提供されているCapabilities API Classesが必要です。 5.2 使用条件補足 JBK開発機能では、以下のフォルダにあるサンプルソースコードを、次の“頒布について”に定める条件のもとで、改変することができ ます。 製品インストール先\IDE\1101\JBK\examples 頒布について お客様は、JBK開発機能が提供するソースコード、サンプルを用いて作成したバイトコードのJavaプログラムを頒布する場合、以下の 条項に同意いただく必要があります。万一同意いただけない場合、頒布することはできません。 なお、以下の条項では、JBK開発機能が提供するソースコード、サンプルを用いて作成したバイトコードのJavaプログラムを“頒布する Javaプログラム”と記述します。 ・ 頒布先にはJBK運用環境を必要とします。 ・ 頒布するJavaプログラムはソースコード形式で頒布することはできません。 ・ 頒布するJavaプログラムの使用または使用不能から生じるいかなる損害に関して、弊社は責任を負いません。 - 76 - 用語集 GUIライブラリ GUIライブラリとは、Javaアプリケーションのグラフィカルユーザインタフェース(GUI)を実現するためのクラスライブラリのことです。 GUIライブラリを利用することにより、JDKで提供されるグラフィカルユーザインタフェース機能の利用だけでアプリケーションフォー ム画面を作成する場合に比べ、表現力/生産性を向上させることができます。 HTML(HyperText Markup Language) ハイパーテキスト記述言語と呼ばれる場合もあります。Webページ上の文書を記述するために使用される言語です。 Javaで開発したプログラムをWebで使用するには、HTML文書の中に、アプレットと呼ぶJavaで作成したプログラムを埋め込む必要 があります。 HTTPSプロトコル SSLを用いたHTTP通信を行う際に指定するプロトコルです。URLの先頭に“https://”と指定します。 Interstage Studio Standard-J Edition ビジネスアプリケーションを効率的に開発するための統合開発環境を提供する製品です。Interstage Studio Standard-J Editionで は、ビジネスアプリケーションの開発環境と実行環境を提供し、各種のアプリケーションの開発および運用ができます。 J Business Kitは、Interstage Studio Standard-J Editionを構成する1コンポーネントとして、Javaアプリケーションを開発するための機 能を提供しています。 IPアドレス コンピュータに一意に割り振られたネットワーク用のアドレスのことです。 Java 米国Sun Microsystems,Inc.(現Oracle)が提唱したプログラミング言語です。 Java言語のコンパイラは、ソースコードをプラットフォームに依存しない形式のバイトコードと呼ぶ中間コードに変換します。このバイ トコードを実行するプログラムをJava VM(Java仮想マシン)と呼び、Unix、Windows、Macintosh、などの各プラットフォームに提供さ れています。 Java Development Kit(JDK) Java Development Kitは、Oracle社が提供するJava開発キットです。 Java Development Kitでは、Javaによるプログラム開発に必要な基本的な汎用クラスライブラリを提供しています。 Java Plug-in Webページ上のJavaプログラムの実行をサポートするために、Webブラウザの機能を拡張するソフトウェアです。 Java Plug-inを用いると、Webブラウザが内蔵するJava VMの代わりに、Oracle社のJava SEを使用してアプレットを実行することがで きます。 Java Plug-inは、Oracle社が提供しています。 JavaBeans 再利用可能なソフトウェア部品(コンポーネント)を作成するための仕組みです。 GUIを使った簡単な操作により各部品間の関係付けを指定して部品を再利用することで容易にプログラムを開発できます。 Javaアプリケーション Javaで開発したプログラムを、最初から、パーソナルコンピュータやサーバにインストールしておき、その機種に組み込まれている Java実行環境で実行する形式のプログラムのことです。 - 77 - Java仮想マシン Javaプログラムをコンパイルすると、バイトコードと呼ばれる中間コードが作成されます。この中間コードを各プラットフォームに搭載 されたJava仮想マシンが解釈・実行することによって、プログラムが動作します。 Javaコンソール JBKプラグイン実行時に標準出力/標準エラー出力に出力された文字列を表示するコンソールです。 JBK J Business Kitの略です。 jbkplugin.propertiesファイル JBKプラグインに関する設定情報を記述するファイルです。 jbkplugin.shutdownファイル JBKプラグインが持つアプレットへの終了問合せ機能を一時的に無効にするときに用いるファイルです。 JBKプラグイン Webページ上のJavaプログラムの実行をサポートするために、JBKが提供するプラグイン機能です。 JBKプラグインを用いると、Webブラウザが内蔵するJava VMの代わりに、Oracle社のJava SEを使用してアプレットを実行することが できます。 JIT Just In Time コンパイラの略です。 JITは、バイトコードのJavaプログラムをダイナミックにネイティブコードにコンパイルして実行するソフトウェアです。 JPEG Joint Photographic Expert Groupの略です。 ISO、CCITTおよびEICが共同でカラー静止画像を符号化するための標準化を行っており、ここで採用されたカラー静止画像の圧 縮伸張技術が使用されています。 policyファイル ファイルのアクセス権などのセキュリティ情報を設定したファイルです。 policyファイルは、Java VMが提供するファイルです。 RGB RGB値は、画面に表示する色を赤、緑、青の3原色の成分で示したものです。 Socket 異なるJava仮想マシンあるいは異なるホスト上で動作しているアプリケーション間でデータを受け渡す仕組みです。 SSL(Secure Sockets Layer) ネットワーク通信を行う際のデータの暗号化技術の1つです。 URL(Uninfom Resource Locater) インターネットのホームページやリソースファイルの格納先などを表す住所のことです。 Webサーバ ホームページのデータやアプレットなどを管理するサーバです。 - 78 - Webブラウザ Webページを閲覧するためのクライアントソフトウェアです。 Internet Explorerなどがあります。 アプレット Webサーバからダウンロードして実行可能なプログラムのことです。 イベント 業務システムの利用者が、プッシュボタンをクリックしたり、メニューを選択したりしたときなどに、その出来事に対応して発生する事 象をいいます。 イベントリスナ イベントを受信する側のオブジェクトのことをいいます。単にリスナともいいます。 イメージボタン イメージボタン(JFImageButtonクラス)は、イメージを表示することができる部品です。 また、ONとOFFの状態を表現することができるスイッチボタンとしても利用できます。 インセット インセットは、コンテナが自身の端に残しておく上下左右のスペースです。 その領域は、境界、空白の空間、またはタイトルになります。 インデント インデントは、文字の字下げのことです。 埋め込み文字列フィールド 埋め込み文字列フィールド(JFFieldFilledクラス)は、いくつかのラベル(固定部)と入力フィールド(可変部)からなる部品です。 オフセット オフセットは、ある基準からの相対値のことです。 カラムヘッダ カラムヘッダは、2次元のデータを表形式で表示するコンポーネントの、各列の最上部の見出し行です。 カレンダ カレンダ(JFCalendarViewクラス)は、カレンダの表示と日付の選択を行う部品です。 機能キーマネージャ 機能キーマネージャは、JFTextEditKeyクラスのことで、[Ctrl]+[C]や[Delete]などの機能キーに対する処理を登録するためのクラス です。 定義済処理、指定文字列の挿入処理、ユーザ定義処理を各機能キーに登録することができます。 キャレット キャレットは、文字が入力される位置を示す記号です。 クリップボード クリップボードは、アプリケーション間でデータを転送するときに、データを一時的に記憶しておく領域です。 あるアプリケーションでクリップボードに転送したデータを、別のアプリケーションでクリップボードから貼り付けることで、アプリケー ション間でデータを転送することができます。 - 79 - クリップボードに記憶された内容は、システムを終了するか、アプリケーションからクリップボードにデータを転送するまで保存されて います。 グループボックス グループボックス(JFGroupboxクラス)は、複数のコントロールをグループ化するために使用するラベルおよび枠線付きの部品です。 自動脱出機能 自動脱出機能は、制限されている文字数まで文字を入力した場合に、自動的に次のコンポーネントへフォーカスを移す機能です。 条件色指定機能 条件色指定機能は、文字列の内容に応じて表示する色を変更する機能です。 署名付きアプレット セキュリティ上安全なことを証明するための署名が付けられたアプレットです。 ステータスバー ステータスバー(JFStatusbarクラス)は、メッセージラインやステータスインジケータを表示する部品です。 ストリーム ストリームはデータや通信内容の流れのことです。 スピンボタン スピンボタン(JFSpinButtonクラス)は、垂直方向または水平方向の2つのボタンが1組になった部品です。 スライダ スライダ(JFSliderクラス)は、つまみと目盛りで構成され、マウスやキー操作でつまみを動かして値を変更する部品です。 セキュリティレベル JBKプラグインで署名なしアプレットを実行する際に掛かるセキュリティ制限のレベルです。 セル セル(JFCellクラス)は、文字列とイメージを矩形領域に描画する部品です。 タイムゾーン 地域によって標準時が異なることをタイムゾーンが異なるといいます。 JDKのTimeZoneクラスで実装され、タイムゾーンに依存した処理に使用されます。 タブパネル タブパネル(JFTabPanelクラス)は、複数のコンポーネントの表示を切り替えるために複数のページをもつ部品です。 ダミーカラムヘッダ ダミーカラムヘッダは、カラムヘッダの全体長が表示域より小さいときに、あまった領域に表示するカラムヘッダのことです。 ダブルバッファリング すべての描画処理をオフスクリーンのバッファで行ってから、そのバッファの内容を一度にスクリーン上へコピーする処理のことで す。 チェックリスト チェックリスト(JFCheckListクラス)は、チェックボックス付きのリストを表示する部品です。 - 80 - チョイス チョイス(JFChoiceクラス)は、項目の選択および、選択されている項目の表示を行う部品です。 ツールチップ ツールチップ(JFToolTipクラス)は、文字列をポップアップウィンドウに表示する部品です。 ツールバー ツールバー(JFToolbarクラス)は、コンポーネントの配置、ツールチップを表示する部品です。 ツリー形式 ツリー形式(JFTreeクラス)は、複数の列情報(マルチカラム)を持つツリー形式でデータを表示する部品です。 テキストエリア テキストエリア(JFTextAreaクラス)は、複数行のテキストの編集および表示をする部品です。 テーブル形式 テーブル形式(JFTableViewクラス)は、2次元のデータをテーブル形式(表形式)で表示/編集する部品です。 トレース 事象が発生したとき、その発生事象を順次記録したり、プログラム実行過程の履歴情報を収集したりすることです。 ドメイン ネットワークに接続されているコンピュータを識別する名前のことです。 ナル値(null) ナル値は、項目に値が設定されていない状態を示す値です。 日本語入力システム制御機能 日本語入力システム制御機能は、コンポーネント上に入力フォーカスが移ったとき、自動的に日本語入力システムの状態を変更す る機能です。 この機能を使うためには、JBKインストール時に[日本語入力機能の補完]を行う必要があります。 入出力フィールド 入出力フィールド(JFFieldDate、JFFieldDouble、JFFieldLong、JFFieldStringクラス)は、それぞれ日付値、実数値、整数値、文字列 の入出力を単一行で行う部品です。 パスワード入力機能 パスワード入力機能は、入力した文字を指定の文字('*'など)で置き換えて画面上に表示する機能です。 パネル パネル(JFPanelクラス)は、ダブルバッファリング機能などをもつ部品です。 ピア ラッパークラスがActiveXコントロールとやり取りを行うための機能です。 ピクセル ピクセルは、スクリーン上にグラフィックを表示する最小単位です。 複数行ラベル 複数行ラベル(JFMultiLineLabelクラス)は、複数行表示可能な部品です。 - 81 - プロキシサーバ ネットワーク上でファイアウォールの外にあるサーバとの接続を行うときに用いる、中継用のサーバです。 プログレスバー プログレスバー(JFProgressbarクラス)は、操作の進行状況を表すために使用する部品です。 ペイン ペインは、1つの矩形領域を区切っていくつかに分割したときの、分割された各領域のことです。 ポイント ポイントは、印刷関係においての長さの単位の1つで、1ポイントは約 0.35mm(約 1/72inch)です。 現在は、活字の大きさの呼称として用いられ、例えば一辺が 8 ポイントの大きさの活字を“8ポイント”と呼んでいます。 メソッド クラス内に定義される関数であり、Javaのフィールドなどを操作する実行文の集まりを、メソッドといいます。 リスト形式 リスト形式(JFListViewクラス)は、2次元のデータをリスト形式(表形式)で表示する部品です。 ロケール ロケールは、特定の地理的、政治的、または文化的地域のことです。 JDKのLocaleクラスで実装され、ロケールに依存した処理に使用されます。 ワークベンチ WindowsのGUIを利用してアプリケーションを開発するための統合開発環境です。アプリケーション開発に必要な画面フォーム・帳 票フォームのデザインやデータベースの定義からアプリケーションのデバッグまでの一連の作業を1つの開発環境で効率的に行う ことができます。 - 82 -