Java Platform, Standard Editionデプロイメント・ガイド
目次      

31 コード・ベースの決定

このトピックでは、コード・ベースがJNLPファイルで指定されていない場合に、Java Web Startアプリケーションのコード・ベースを決定する方法について説明します。

JNLPファイルでは、コード・ベースは<jnlp>タグのオプション・パラメータです。コード・ベースは、そのJNLPファイルに記述されているリソースを見つけるためと、そのJNLPファイル自体を検索するための両方の目的に使用されます。技術的な理由から、絶対コード・ベースが指定されていないかぎり、Java Web StartはサーバーからJNLPファイルの内容を更新できません。

コード・ベースは、明示的に指定されたか、またはHTMLドキュメントの場所から暗黙的に取得されたかのどちらかの理由で、常にブラウザによって提供されます。これにより、JNLPファイル内で、コンテンツのツリー全体をあるサーバーから別のサーバーに移動する場合に非常に有効な相対URLを使用できるようになります。

この節の内容は以下のとおりです。

31.1 コード・ベースの計算規則

JNLPファイルでは、コード・ベースは<jnlp>タグのオプション・パラメータです。コード・ベースは、そのJNLPファイルに記述されているリソースを見つけるためと、そのJNLPファイル自体を検索するための両方の目的に使用されます。技術的な理由から、絶対コード・ベースが指定されていないかぎり、Java Web StartはサーバーからJNLPファイルの内容を更新できません。

コード・ベースは、明示的に指定されたか、またはHTMLドキュメントの場所から暗黙的に取得されたかのどちらかの理由で、常にブラウザによって提供されます。これにより、JNLPファイル内で、コンテンツのツリー全体をあるサーバーから別のサーバーに移動する場合に非常に有効な相対URLを使用できるようになります。

JNLPファイルは、ツリー構造内のほかのJNLPファイルを参照します。JNLPアプレットのルートJNLPファイルは、<applet>タグによって参照されます。APPLETタグのコード・ベースは、ルートJNLPファイルの場所を定義するのに役立ちます。

コード・ベース計算の規則は次のとおりです。

  • JNLPファイルで絶対コード・ベースが指定されている場合は、そのコード・ベースが使用されます。これは下位互換性のために必要です。

  • JNLPコード・ベースが指定されていない場合は、JNLPファイルを含むディレクトリが使用されます。

  • それ以外の場合は、JNLPのコード・ベースがJNLPファイルを含むディレクトリにマージされます。

単純なJavaの用語で、これを次の例に示すように表現できます。

URL new_codebase = new URL(current_jnlp_dir, current_jnlp_codebase);

このコード・ベース計算はJSR-56の拡張ではありません。JSR-56ではコード・ベースは絶対値に制限されるわけではないので、相対値も指定できます

31.2

例1:

this JNLP's location: http://someserver.example.com/this.jnlp
 this JNLP's codebase: http://www.example.com/test/
 resulting codebase for
 parsing this JNLP: http://www.example.com/test/

例2:

this JNLP's location: http://www.example.com/test2/this.jnlp
 this JNLP's codebase: <none>
 resulting codebase for
 parsing this JNLP: http://www.example.com/test2/

例3:

this JNLP's location: http://www.example.com/this.jnlp
 this JNLP's codebase: codebasedir
 resulting codebase for
 parsing this JNLP: http://www.example.com/codebasedir

例4:

相対パスは、HTMLファイルのツリーの場合と同様に、入れ子の各JNLPを参照するために使用されます。

www.example.com/html/my_applet.html
 refers to: my_applet.jnlp
 codebase: www.example.com/html

 my_applet.jnlp:
 codebase not specified
 inherits "www.example.com/html"
 references JNLP extension "jogl/jogl.jnlp"

 jogl/
 jogl.jnlp
 codebase not specified
 inherits "www.example.com/html/jogl"
 (the directory containing jogl.jnlp)
 references gluegen-rt/gluegen-rt.jnlp

 gluegen-rt/
 gluegen-rt.jnlp
 codebase not specified
 inherits "www.example.com/html/jogl/gluegen-rt"
 (the directory containing gluegen-rt.jnlp)
目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.