Javaプラグインを使用してJavaにプラグインする

Javaテクノロジが成熟するにつれて、Sun Microsystems(Javaの作成者)はJava Development Kit(JDK)を介して新しいバージョンのJavaをリリースします。Netscapeおよびその他のブラウザベンダーは、そのバージョンのランタイムコンポーネントであるJavaランタイム環境(JRE)をブラウザの次のイテレーションに追加することにより、新しい各バージョンをサポートしています。ただし、Sunが新しいJavaバージョンを発表してから、それをサポートするブラウザがリリースされるまでの時間差により、最新のJREの機能(およびバグ修正)を利用する必要のある企業イントラネット開発者は苛立ちました。また、MicrosoftがInternet Explorer 4.0および5.0でJREを完全にサポートすることを拒否したことで、開発者にとって状況はさらに苛立たしくなりました。

Sunには、これらの問題に対する解決策があります。このソリューションはベンダーをバイパスし、プラグインテクノロジーに依存して新しいJREを配布します。

プラグインアーキテクチャ-基本的なアーキテクチャの組み合わせとプラグインは-の仕様及び必要に応じて動的に負荷がプラグインことブラウザの一部の実装です。NetscapeとMicrosoftの両方が、このアーキテクチャをブラウザに追加しました。(アーキテクチャの実際の実装はまったく異なります。Netscapeは単純な実行可能実装を使用しますが、MicrosoftはActiveXオブジェクトモデルの実装を使用します。)

プラグインは、ライブラリファイルに格納される実行可能コードです。特別なHTMLタグを介して参照されると、ブラウザはプラグインアーキテクチャを介してこのライブラリを読み込み、ライブラリのコードの実行を開始します。(MacromediaのShockwaveまたはVXtreme Web Theaterを参照するWebページに出くわしたことがある場合は、プラグインが機能している例を見たことがあるでしょう。)

Sunのソリューションは、Javaプラグインと呼ばれるJava用のプラグインを作成することです。

Javaプラグインとは何ですか?

Javaプラグインは、ブラウザと外部JREの間のブリッジとして機能するソフトウェア製品です。開発者は、Webページに特別なHTMLタグを配置することにより、この外部JREを使用するようにブラウザに「指示」します。これが完了すると、ブラウザは、この外部JREのすべての機能(Javaのセキュリティモデルの制限内)にアクセスできるJavaアプレットまたはJavaBeansコンポーネントを実行できます。

Sunは、98年4月にJava Plug-in1.1をリリースしました。その後まもなく、JavaWorldは、この製品に対する反応を評価するために読者層を調査しました。その後、Javaプラグイン1.1.1および1.1.2のメンテナンスリリースが行われました。(JavaWorldの投票とJavaプラグインのリリースの詳細については、「参考文献」を参照してください。)

JDK 1.2(現在はJava 2プラットフォームとして知られています)のリリースに伴い、SunはJava Plug-in1.2をリリースしました。ただし、以前のリリースとは異なり、このリリースは現在、Microsoft Windows(95/98 / NT)プラットフォームでのみ使用できます。Sunは現在、SolarisプラットフォームでJava Plug-in1.2を利用できるようにするために取り組んでいます。

この記事では、Java Plug-in 1.2について説明し、このテクノロジーをダウンロードしてインストールする方法について説明します。これは、Windows95オペレーティングシステムでInternetExplorer3.02およびNetscapeCommunicator4.5ブラウザでJavaPlug-in1.2を使用した経験に基づいています。

プラグを差し込んでください!

Java Plug-in 1.2は、現在JRE1.2にパッケージ化されています。Javaプラグインをプレインストールする場合は、「リソース」セクションにリンクされているSunのWebサイトからJRE1.2をダウンロードしてインストールします。または、そのプラグインを参照するWebページに「サーフィン」するときに、ブラウザにJavaプラグインをダウンロードさせることを選択できます(ブラウザによっては、最小限の介入で)。方法は次のとおりです。

ブラウザは、Javaプラグインの使用を必要とするWebページに遭遇すると、Javaプラグインがブラウザと同じマシンにインストールされているかどうかを確認します。そうでない場合、ブラウザは必要なファイルをダウンロードしてインストールする必要があります。これがどのように機能するかはブラウザによって異なるため、次にこれらの違いを見ていきます。

Netscape Communicator 4.5

Netscape Communicatorを使用している場合、Javaプラグインを参照するHTMLタグを含むWebページがダウンロードをアクティブにします。我々は見ていきます、この資料の後半。今のところ、必要なプラグインとその入手先をブラウザに伝える情報が含まれていることを知っていれば十分です。図1は、Communicatorがインストールされていないプラグインを参照するWebページに遭遇したときに表示される最初のダウンロードページを示しています。

そのページの画像をクリックすると、Communicatorは図2に示すような「プラグインがロードされていません」ダイアログボックスを表示します。

このダイアログボックスは、ブラウザが必要なもの(のプラグインapplication/x-java-applet;version=1.2)とその入手先(//java.sun.com/products/plugin/1.2/plugin-install.html)を正確に認識していることを示しています。

では、「プラグインを入手」ボタンをクリックするとどうなりますか?ブラウザは、現在のページからダイアログボックスのインターネットアドレスで指定されたページに切り替わります。そのページから、指示に従ってJRE1.2とJavaプラグインをダウンロードしてインストールします。

Javaプラグインを備えたJREがインストールされると、Javaプラグインを必要とするWebページとのNetscapeの次の遭遇時に、このプラグインがローカルマシンのハードドライブからロードされ、アプレットまたはJavaBeansコンポーネントが次のように実行されます。図3に示されています。

Internet Explorer 3.02

Internet Explorerを使用している場合、Javaプラグインを参照するタグを含むWebページは、このプラグインをダウンロードするためのプロセスをアクティブにします。 (と同様にこの記事の後半でタグについて説明します)。このタグには、必要なプラグインの種類と入手先をブラウザに知らせる情報が含まれています。後で説明するように、Javaプラグインを取得するプロセスは、CommunicatorよりもExplorerの方が自動化されています。図4は、Explorerがインストールされていないプラグインを参照するWebページを検出したときに表示される最初のページを示しています。

(注:コンピューターがインターネットに接続されている場合、プラグインスペースの左上隅にあるカラフルなひし形が表示されます。コンピューターがインターネットに接続されていない場合、このひし形は赤いX文字に置き換えられます。Explorerは、プラグインを取得するために何もしません)。

コンピューターがインターネットに接続されていると仮定すると、ExplorerはJavaプラグインActiveXコントロールとJREのダウンロードを担当する小さなActiveXコントロールのダウンロードに進みます。Explorerは、図5に示すように、この最初のActiveXコントロールに関連付けられたVerisign証明書を表示します。

Javaプラグインをインストールして実行することを選択した場合、前のダイアログボックスの[はい]ボタンをクリックすると、エクスプローラーは図6に示すダイアログボックスを介してロケール情報の入力を求めます。

ロケール情報が取得されると(そして[インストール]ボタンをクリックすると)、エクスプローラーは図7に示すようにダウンロードダイアログボックスを表示します。

ダウンロードが完了すると、ExplorerはJavaプラグインインストールプログラムを使用してJREを起動しようとします。(エクスプローラーからJavaプラグインを初めてダウンロードしたときに、CAB-Windowsキャビネット-ファイルが破損したエラーメッセージが表示されたため、インストールプログラムを開始および完了できませんでした。インストールプログラムは、で正常に開始および完了しました。 2回目の試行。)インストールプログラムが終了するとすぐに、エクスプローラーは、図8に示すように、アップルト(またはJavaBeansコンポーネント)をロードして実行します。

Windowsレジストリ設定

JRE with Java Plug-inインストールプログラムは、WindowsレジストリにさまざまなJREおよびJava Plug-in設定を記録します。これは、インストールおよびその他の構成データの集中データベースであり、さまざまな32ビットWindowsオペレーティングシステムの基本部分です。次の表は、このデータベースに格納されているいくつかのJavaプラグイン設定を示しています。各設定は、設定とその設定の値を識別するキーで構成されています。

キー
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.2/JavaHome c:\Program Files\JavaSoft\JRE\1.2
HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Java Plug-in/1.2/RuntimeLib c:\Program Files\JavaSoft\JRE\1.2\bin\classic\jvm.dll
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Debug Mode 0
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Debug Port 2502
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Java Runtime Default
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/Java Runtime Version 1.2
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/JIT Enabled 1
HKEY_CURRENT_USER/Software/JavaSoft/Java Plug-in/JIT Path symcjit
表1.Windowsレジストリーに保管されているJavaプラグインの設定

最初の2つのJavaプラグイン設定は、JavaHomeおよびRuntimeLibキーで識別されます。これらのキーに関連付けられた値は、CommunicatorとExplorerが、それぞれJREホームディレクトリとJREのランタイム仮想マシンを見つけるために使用されます。これらの値に含まれるディレクトリ情報は、インストール中に選択されたデフォルトのインストールディレクトリを反映しています。残りのキーは、Javaプラグインのコントロールパネルで使用されます。

コマンドと制御

Java Plug-inのコントロールパネルには、 Javaプラグインの動作を変更することを可能にするSwingアプリケーションです。JRE / Javaプラグインインストールプログラムは、Windowsプログラムランチャーにエントリを追加します。このエントリを選択すると、Javaプラグインのコントロールパネルがアクティブになります。このエントリは、次の行で構成されています(デフォルトのインストールディレクトリを想定)。

"c:\ Program Files \ JavaSoft \ JRE \ 1.2 \ bin \ javaw.exe" -classpath .. \ lib \ rt.jar; .. \ lib \ jaws.jar sun.plugin.panel.ControlPanel ..

コントロールパネルは、3つのタブ([基本]、[詳細]、および[プロキシ])と2つのボタン([適用]と[リセット])を備えたタブ付きインターフェイスで構成されています。「基本」タブは、Javaプラグインの基本操作を制御します。たとえば、Javaプラグイン独自のJavaコンソールを表示するかどうかを選択できます。[詳細設定]タブは、デバッグとともにJavaプラグインで使用されるJREを制御します。[プロキシ]タブは、Javaプラグインが中間コンピュータを介してインターネット経由で別のコンピュータと通信するときに使用するアドレスとポート番号を制御します。[適用]ボタンはコントロールパネルで行われた変更を保存し、[リセット]ボタンはデフォルト値を復元します。

図9は、[基本]タブがアクティブなタブであるコントロールパネルを示しています。

[Javaプラグインを有効にする]チェックボックスをオンにすると、JavaプラグインでアプレットまたはJavaBeansコンポーネントを実行できるようになります。デフォルト設定が有効になっています(チェックボックスがオンになっています)。

「Javaコンソールを表示」チェックボックスを使用すると、アプレットまたはJavaBeansコンポーネントの実行中に新しいJavaコンソールを表示できます。後で説明するように、コンソールにはSystem.outSystem.errオブジェクトによって出力されたメッセージが表示されます(デバッグに役立ちます)。デフォルト設定は、新しいJavaコンソールを表示するために使用されます(ボックスがチェックされています)。

[JARをメモリにキャッシュ]チェックボックスをオンにすると、以前にロードされたアプレットまたはコンポーネントクラスがキャッシュされ、そのアプレットがリロードされたときに再利用されるため、メモリをより効率的に使用できます。アプレットまたはコンポーネントがデバッグされている場合、または最新のアプレットまたはコンポーネントクラスがダウンロードされていることを確認する場合は、このオプションをオフのままにしておく必要があります。デフォルト設定では、JARをメモリにキャッシュします(チェックボックスがオンになっています)。

[ネットワークアクセス]ドロップダウンリストボックスでは、実行中のアプレットとコンポーネントに付与するネットワークアクセス許可を選択できます。このオプションは、Java Plug-in1.1.xを実行している場合に有効になります。Java Plug-in 1.2の場合、同じ動作を有効にするには、新しいセキュリティアーキテクチャを使用する必要があります。(詳細については、JDK 1.2ドキュメントの「セキュリティと署名付きアプレット/セキュリティアーキテクチャ」を確認してください。)デフォルトでは、アプレットとコンポーネントは元のサーバー(ネットワークアクセス=アプレットホスト)にのみ接続できます。ネットワークアクセスが有効になっている場合、デフォルトに加えて、次の許容値を使用できます。

  • アプレットまたはコンポーネントがネットワーク呼び出しを行えるように、ネットワークアクセスを禁止します

  • アプレットまたはコンポーネントが任意のホストサーバーに接続できるように、無制限のネットワークアクセスを許可します(これはセキュリティ上の問題であり、非常に注意深く使用する必要があります)。

[ Javaランタイムパラメータ]テキストフィールドは、カスタムオプションを指定することにより、Javaプラグインのデフォルトの起動パラメータを上書きします。このテキストフィールドには、java.exeコマンドラインツールにパラメーターを指定するときに使用するのと同じ構文を使用します。

図10は、[詳細設定]タブがアクティブタブであるコントロールパネルを示しています。

[ Javaランタイム環境]ドロップダウンリストボックスを使用すると、JavaプラグインをJDK1.2またはマシンにインストールされている任意のJREで実行できます。 Java Plug-in 1.2は、デフォルトのJRE(現在はJRE 1.2)とともに提供されます。ただし、このデフォルトのJREをオーバーライドして、古いバージョンまたは新しいバージョンを使用することができます。コントロールパネルは、マシンにインストールされているJDKまたはJREのすべてのバージョンを自動的に検出します。これらのバージョンがリストボックス内に表示されます。リストの最初の項目は常にJavaPlug-in Defaultになり、最後の項目は常にOtherになります。 「その他」を選択した場合は、JREまたはJDK1.2へのパスを指定する必要があります。

[JITコンパイラを有効にする]チェックボックス(Win32プラットフォームのみ)は、ジャストインタイム(JIT)コンパイラを有効にします。コンパイラーを有効にする場合は、JITコンパイラーへのパスも指定する必要があります。JITコンパイラはbin、ランタイム環境用に選択されたJREまたはJDKのディレクトリに配置する必要があります。