ここでは、プロトコル、複数のJREバージョンおよび特別なアプレット属性など、リッチ・インターネット・アプリケーションにサポートされているその他のデプロイメント機能の情報を提供します。
この節の内容は以下のとおりです。
Java Plug-inには、次の一般的なプロトコルに対するサポートが組み込まれています。
Java Plug-inは、HTTPおよびFTPプロトコルをサポートします。この中には、組込みプロキシ構成サポートも含まれています。
Java Plug-inでは、HTTPSがJava Secure Socket Extension (JSSE)を介してサポートされています。JSSEは、Javaプラットフォームに対してSSLとHTTPSのJava実装を提供しています。
HTTPSサーバーへのアクセス時に、エラーが発生する場合があります。Java Plug-inは、JSSEにフックすることにより、次のタイプのエラー処理を提供します。
ホスト名の不一致: HTTPSサーバーのホスト名がサーバー証明書の名前と一致しない場合、警告ダイアログが表示されます。
信頼されないサーバー証明書: SSLハンドシェーク時にサーバー証明書を検証できない場合、警告ダイアログが表示されます。
信頼されないクライアント証明書: サーバーによりクライアント認証が要求され、かつクライアント証明書を検証できない場合、警告ダイアログが表示されます。
サーバー認証: クライアントがHTTPSサーバー上の保護されたディレクトリにアクセスする場合、ユーザー名およびパスワードの入力が求められます。注: 現在のところ、基本的な認証のみがサポートされています。
JSSEを介したHTTPSのサポートにより、ブラウザ固有の問題の多くが取り除かれますが、次のような問題が発生することがあります。
信頼されないサーバー証明書: HTTPS接続の確立時にSSLハンドシェークが行われると、サーバー証明書の検証がJava SEのルートCAストアに対して行われます。ただし、Java SEがサポートするルートCA証明書の数は、ブラウザがサポートするルートCA証明書の数ほど多くありません。このため、信頼されないサーバー証明書で問題が発生する場合があります。
クライアント認証: Java Plug-inは、JRE 1.5以降でブラウザ・キーストアをサポートしています。HTTPSサーバーのブラウザ・キーストア・クライアント認証は、Internet ExplorerとMozillaファミリ・ブラウザとで異なった方法で実行されます。Internet Explorerでは、証明書はJREキーストアにインポートされません。Mozillaファミリ・ブラウザでは、Mozillaキーストアから証明書を読み取るためにJSSパッケージをインストールする必要があります。デフォルトでは、ブラウザ・キーストアのサポートはオンになっています。
エラー処理のレベル: Java Plug-inは、現在のところ、前のセクションにあげたエラー・タイプを処理します。ただし、Java Plug-inが認識しないエラーが発生した場合、Javaアプレット・コードが壊れる可能性があります。
現在、Java Plug-inはSOCKSバージョン4をサポートします。
注: HTTP/HTTPSの場合、SOCKSプロキシ・サーバーをWebプロキシ・サーバーと併用して、キャッシュを追加できます。ただし、この動作は、ブラウザ内の同様の構成をJava Plug-inを使用せずに実行する場合の動作とは異なる可能性があります。
Java Plug-inでは、HTTP/HTTPS用のNTLM認証プロトコルがサポートされています。NTLM認証を必要とするサーバーにアクセスしようとすると、ユーザー名、パスワードおよびドメインを入力するよう求められます。
次の項では、単一システムでJREの複数のバージョンをサポートするための方法について説明します。
Java Plug-inの新規バージョンおよび更新バージョンにはすべて、一意のMIMEタイプがあります。MIMEタイプは、Java Plug-inによってロードおよび初期化されるJava実行可能ファイルのタイプまたはバージョンを識別します。これは、Firefoxではembed
タグ内の要素型によって、Internet Explorerではobject
タグ内の<param name="type">
によって指定されます。FirefoxでJava Plug-inの最小バージョンを使用する場合、embed
タグに一意のMIMEタイプを指定します。
コンピュータにインストールされているJava Plug-inのバージョンに対応するMIMEタイプは、次のように表示されます。
application/x-java-applet;jpi-version=<version>
versionには、メジャー、マイナー、およびパッチ・バージョン番号が含まれます。
Java Plug-inでは、(Java Plug-inのバージョンに対応する)最新のMIMEタイプ・バージョンおよび以前のすべてのMIMEタイプ・バージョンをサポートしています。
Java Plug-inでサポートされているその他のMIMEタイプは、次のように表示されます。
application/x-java-applet;version=<version>
コンピュータにインストールされているJava Plug-inのバージョンでサポートされているMIMEタイプを確認するには、Firefoxのロケーション・バーにabout:plugins
と入力します。これにより、インストール済の検出されたプラグインのリストが表示されます。Java Plug-inのエントリを探します。このリストにはサポートされているすべてのMIMEタイプが一覧表示されます。詳細は、「MozillaZine Knowledge Base」の「about:plugins
」を参照してください。
Java Plug-in 1.7.0の場合、一意のMIMEタイプはapplication/x-java-applet;jpi-version=1.7
です。
注意: 注: JREの各種バージョンがインストールされている場合は、最新バージョンのJava Plug-inのみがインストールされます。前述のように、このバージョンのJava Plug-inは以前のすべてのバージョンのJava Plug-inのMIMEタイプをサポートしています。これらのMIMEタイプは、npjp2.dll ファイルでサポートされています。このファイルの場所は、about:plugins ページに記載されています。 |
Java Plug-inの新規バージョンおよび更新バージョンにはすべて、一意のJava Plug-inレジストリ・キーがあります。主要なJava Plug-inレジストリ・キーを次に示します。
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Plug-in\<version number>
注意: 注: 64ビットのオペレーティング・システムに32ビットのJREをインストールしてある場合、Java Plug-inのレジストリ・キーはHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Plug-in\ <version number>になります。 |
<version number>を確認するには、Firefoxの「about:plugins
」ページにあるJava Plug-inのエントリを参照してください。
JRE 7u3に付属するJava Plug-inには、次のレジストリ・キーがあります。
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Plug-in\10.3.0
このプロパティ・ファイルの名前はdeployment.properties
です。これは次のディレクトリにあります。
<User Application Data Folder>\Sun\Java\Deployment
<User Application Data Folder>は、ユーザー固有のアプリケーション・データ・フォルダです。
たとえば、Windows 7システムのユーザーtestuser
の場合、<User Application Data Folder>の値はC:\Users\testuser\AppData\LocalLow
になります
<User Application Data Folder>の値は、CSIDL_APPDATA
でのWin32 API関数呼び出しSHGetFolderPath()
から取得されます。
トレースおよびログ・ファイルのデフォルトの場所は<User Application Data Folder>\Sun\Java\Deployment\log
で、<User Application Data Folder>は32.2.3項「一意のJava Plug-inプロパティ・ファイル」で定義されています。
詳細は、22.2項「トレースおよびロギング」を参照してください。
新規リリースおよび更新リリースにはすべて、一意のJavaコントロール・パネルがあります。Javaコントロール・パネルのファイル名はjavacpl.exe
であり、<JRE installation directory>\bin
ディレクトリに格納されています。
Javaコントロール・パネルの最新インストール・バージョンのみが、Windowsのコントロール・パネルから利用可能です。
JRE/JDKの新規リリースおよび更新リリースにはすべて、一意のレジストリ・キーがあります。これらのレジストリ・キーは、次の場所にあります。
HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Runtime Environment\<version number> HKEY_LOCAL_MACHINE\Software\JavaSoft\Java Development Kit\<version number>
<version number>には、メジャー、マイナーおよびパッチ・バージョン番号が含まれます(例: 1.7.40
)。
注意: 注: 64ビットのオペレーティング・システムに32ビットのJREをインストールしてある場合、レジストリ・キーはJava Plug-inのレジストリ・キーHKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft にあります。 |
Java Plug-inは、これらのキーを使用して、適切なバージョンのJREを検出できます。
複数のJREバージョンをWindowsプラットフォームにインストールできます。複数のJREのアプレットがある場合、MIMEタイプjpi-version
の使用は、次のオプションを有効にした場合にのみFirefoxブラウザで機能します。
JRE 6以降に対してMozilla Familyオプションを有効にするには、Javaコントロール・パネルを開いて「詳細」タブをクリックします。「ブラウザのデフォルトのJava」で「Mozillaファミリ」を選択します。
JREの特定のバージョンのJavaコントロール・パネルを呼び出すには、そのバージョンの<JRE_HOME>/bin
ディレクトリに移動し、javacpl.exe
を実行します。
注意: 注: 異なるブラウザ・セッションで複数バージョンのJREを実行できます。ただし、複数のバージョンを同じブラウザ・セッションで実行することはできません。実行しようとすると、ユーザーに警告が表示され、試行は失敗します。 |
以前は、新しいJREをインストールすると、古いリリースのJARおよびネイティブ・ライブラリを新しいリリースから表示することはできませんでした。したがって、それらのライブラリに依存するアプリケーションおよびアプレットは動作しないので、開発者はライブラリを新しいJREに対して再配備する必要がありました。システム全体のリポジトリは、この問題に対する解決策となります。システム全体のリポジトリは、VMがJARライブラリまたはネイティブ・ライブラリを検索できる、JREの場所に依存しないグローバルな(システム全体の)場所を提供します。これはMicrosoft VMのリポジトリと同様の機能を提供します。
注意: システム全体のリポジトリは、WindowsでのみJava Plug-inによってサポートされます。 |
新しいシステム全体のリポジトリの場所について、次の表に示します。
ライブラリの型 | システム全体の場所 |
---|---|
DLL | システム・パス環境変数内の任意のディレクトリ。 |
信頼されていないJAR | <Windows Directory>\Sun\Java\Deployment\Lib\Untrusted |
信頼されているJAR | <Windows Directory>\Sun\Java\Deployment\Lib\Trusted |
<Windows Directory>
は、%SystemRoot%
とも呼ばれる、WindowsがインストールされているドライブにあるWindows OSのディレクトリです。
たとえば、Windows 7では、Windowsは通常Cドライブにインストールされるので、ライブラリの場所は次のようになります。
ライブラリの型 | システム全体の場所 |
DLL | システム・パス変数内にある任意のディレクトリ、たとえばC:\WINDOWS\repository がシステム・パス変数で設定されている場合は、C:\WINDOWS\repository 。 |
信頼されていないJAR | C:\WINDOWS\Sun\Java\Deployment\Lib\Untrusted |
信頼されているJAR | C:\WINDOWS\Sun\Java\Deployment\Lib\Trusted |
システム全体で信頼されているリポジトリのJARファイル内のクラスは拡張クラス・ローダーによりロードされますが、システム全体で信頼されていないリポジトリのJARファイルはアプレット・クラス・ローダーによりロードされます。したがって前者はAllPermission
のアクセス権が与えられ、後者にはデフォルト・アプレットのアクセス権しか与えられません。
システム全体で信頼されたリポジトリの実装は、システム・プロパティjava.ext.dirs
に基づいています。ユーザーがJavaコントロール・パネルから独自のjava.ext.dirs
システム・プロパティを選択する場合、Java Plug-inはシステム全体で信頼されたリポジトリのJARファイルをロードしません。
リポジトリは、バージョンまたは名前空間を制御しません。開発者が配備時にバージョンおよび名前空間の競合を避ける必要があります。
java.Applet.AppletContext
インタフェースに含まれている2つのメソッドを使用すると、ブラウザ・セッション間でアプレットの永続性を確保できます。
これらのメソッドを使用すると、あるブラウザ・セッションのデータやオブジェクトをストリーム処理することにより、それ以降のブラウザ・セッションで再利用できるようになります。これによりアプレットの永続性が維持されるため、同じ目的でアプレット内のstaticオブジェクトを使用する必要がなくなります。
setStream(key, stream)
メソッドは、キーをストリームにマップします。getStream(key)
メソッドは、キーにマップされたストリームを返します。setStream(key, stream)
メソッドの呼出し時に、AppletContext
がキーにマップされたストリームをすでに保持している場合、マッピングは更新されます。
アプレットには、それ自体に関連付けられているデフォルトの属性があります。image
やboxmessage
などの特別な属性は、アプレットに関連付けて、アプレットのダウンロード時のアプレット・ウィンドウをカスタマイズするときに使用できます。これらの特別な属性を使用すると、JavaBeanコンポーネントをカスタマイズすることもできます。
image
image
属性を使用すると、デフォルトのアニメーションをカスタム図形で置き換えることができます。標準のapplet
要素では、次の形式でこの属性を使用します。
<applet ...> <param name="image" value="my_image.gif"> </applet>
objectタグや
embedタグでの使用法については、「
Java Plug-inでのapplet
、objectおよび
embedタグの使用
」を参照してください。
カスタム図形を指定する場合、そのサイズはアプレット・ウィンドウの領域と一致する必要があります。サイズが一致しない場合、アプレット用に指定されている領域の左上隅に図形が配置されます。図形がアプレット・ウィンドウより大きい場合は、その一部が切り落とされます。図形がアプレット・ウィンドウより小さい場合は、その周囲に白(またはboxbgcolor
に指定されている色)の領域ができます。
GIFまたはJPEGのイメージを使用できます。また、アプレットのほかのリソースと同じディレクトリに置く必要があります。つまり、アプレットでcodebase
属性が使用されている場合は、このイメージをcodebase
ディレクトリに置く必要があります。
注:パッケージ化されたJARファイルには、アプレットのほかのリソースが格納されますが、イメージ・ファイルはリソースのダウンロード中に表示する必要があるので、JARファイルには入れないでください。
マウスでアプレット・ウィンドウをポイントすると、ブラウザのステータス・バーに「Loading Java Applet ...
」と表示されます。
boxmessage
boxmessage
属性では、ブラウザのステータス・バーに表示されるテキストをカスタマイズできます。この属性は、image
属性が使用されている場合に有効になります。標準のAPPLET
要素では、次の形式でこの属性を使用します。
<APPLET ...> <PARAM name="boxmessage" value="<your custom message goes here>"> </APPLET>
boxbgcolor, boxfgcolor
これらの属性を使用すると、アプレット・ウィンドウの配色をカスタマイズできます。
これらの属性は、image
属性が使用されている場合に有効になります。アプレット表示領域のデフォルトの外観としてカスタム・カラーは指定できません。
デフォルトではアプレット・ウィンドウのバックグラウンド・カラーは白です。boxbgcolor
属性を使用すると、別のバックグラウンド・カラーを指定できます。標準のAPPLET
要素では、次の形式で使用します。
<APPLET ...> <PARAM name="boxbgcolor" value="<value>"> </APPLET>
<value>
に指定できる値は次のとおりです。
java.awt.Color
から返されたColor
。
r、g、b
。r
、g
、およびb
は0-255
の範囲の整数であり、Color
コンストラクタのColor(int r, int g, int b)
において不透明な標準RGB (sRGB)色をレンダリングします。
HTMLの標準色: silver、green、maroon、purple、navy、teal、およびolive
16進形式
各形式の例: value="cyan"
, value="111,222,145"
, value="silver"
, value="#33FF33"
デフォルトではアプレット・ウィンドウのフォアグラウンド色は黒です。boxfgcolor
属性を使用すると、別のバックグラウンド・カラーを指定できます。カラー値は上述したものと同じです。標準のAPPLET
要素では、次の形式で使用します。
<APPLET ...> <PARAM name="boxfgcolor" value="<value>"> </APPLET>
アプレットのこれらの属性の優先順位は、次のとおりです。
パラメータが指定されていない場合、デフォルトの外観が使用されます。
image
属性にカスタム・グラフィックが指定されている場合、カスタム・グラフィックがimage
に記載されているとおりに表示されます。
boxmessage
属性にカスタム・テキストが指定されている場合、カスタム・テキストがboxmessage
に記載されているとおりに表示されます。
image
およびboxmessage
の各属性をどのように組み合わせる場合でも、boxbgcolor
およびboxfgcolor
の各属性でカスタム・カラーを指定できます。