Java Web Startに関するよくある質問(FAQ)

一般的な質問

  1. Java Web Startとは何ですか?
  2. 詳しい情報はどこで入手できますか?
  3. なぜJava Web Startが必要なのですか?
  4. Java Web Startを使ってアプリケーションを起動するにはどうしたらよいですか?
  5. アプリケーションの起動方法には意味があるのですか?
  6. Java Web Startのシステム要件は何ですか?
  7. Java Web Startが動作するプラットフォームは何ですか?
  8. Java Web Startのサーバー要件は何ですか?
  9. Java Web Startは標準に基づいていますか?
  10. 独自のJava Web Startを実装できますか?
  11. サポートされるブラウザは何ですか?
  12. Java Web Startの総合的なオンライン・リソースのリストはありますか?
  13. Java Web Startを使ってアプリケーションを配備できますか?
  14. Java Web Startは、MarimbaやMS SMSのようなソフトウェア配布メカニズムですか?
  15. Java Web Startはアプリケーションのインストール・プログラムですか?
  16. Java Web Startが動作するJavaプラットフォームのバージョンは何ですか?
  17. Java Web StartはJava Plug-inテクノロジ(アプレット)とどのように関係していますか?

技術的な問題

  1. Java Web Startを動作させるにはアプリケーションを変更する必要がありますか?
  2. アプレットからアプリケーションへの移行パスはありますか?
  3. VM引数をJava実行環境に渡す方法はありますか?
  4. サーバーのタイムスタンプに依存したくありません。どうしたら、バージョン化されたJARを指定でき、JARの増分更新を入手できますか。
  5. JARファイルはアプリケーション間で共有されますか?
  6. 独自のスプラッシュ画面を提供するにはどうしたらよいですか?
  7. ローカル・システムでアプリケーション状態を保存するにはどうしたらよいですか?
  8. 私のアプリケーションには特定のバージョンのJREが必要です。このJNLPファイルを指定するにはどうしたらよいですか。
  9. マニフェスト・ファイルのClass-Pathを信頼できますか?
  10. アプリケーションがネイティブ・コードに依存しているか、それを使用している場合でもJava Web Startを使用できますか?
  11. Class.forNameとClassLoader.getSystemClassLoaderを使用してアプリケーション内部にリソースをロードするにはどうしたらよいですか?
  12. コマンド行からJava Web Startを起動するにはどうしたらよいですか?
  13. 異なる証明書によって署名された複数のJARファイルを使用するにはどうしたらよいですか?
  14. Java Web Startがインストールされているかどうかを調べるにはどうしたらよいですか?
  15. なぜブラウザにJNLPファイルがプレーン・テキストとして表示されるのですか?
  16. なぜJava Web Startは常にJARファイルをIISサーバーから再ロードするのですか?
  17. JnlpDownloadServletでPack200圧縮を使用できますか?
  18. アプリケーションのインスタンスを1つだけ確実に実行する最良の方法は何ですか?
  19. JNLPファイルで設定されたプロパティはいつ設定されますか。
  20. ダウンロードしたJNLPファイルのファイルが見つからない原因は何ですか。
  21. 署名付きJARファイル(JCE拡張など)を他の目的に使用するにはどうすればよいですか。
  22. Gnomeで一部のLinuxプラットフォームでAssociation機能を使用できないのはなぜですか。
  23. JNLP MIMEタイプをブロードキャストするようにサーバーを設定するにはどうすればよいですか。
  24. JnlpDownloadServletを使用するようにサーバーを設定するにはどうしたらよいですか?
  25. アプリケーションを一意に識別するにはどうするのですか?
  26. JNLPアプリケーションに関連付ける複数のファイル拡張子やMIMEタイプはどのように作成するのですか。
  27. ネイティブ・コードからのコール時にFindClass()が失敗することがあるのはなぜですか。

セキュリティに関する質問

  1. Java Web Startのセキュリティ保護はどのように行われているのですか?
  2. 安全なサンドボックス(sandbox)とは何ですか?
  3. Java Web Startの安全なサンドボックスはアプレットのサンドボックスに比べてどのくらい柔軟性が高いのですか?
  4. アプリケーションがシステムに対する無制限のアクセス権を取得できるようにするにはどうしたらよいですか?
  5. JARファイルの暗号化されたダウンロードはサポートされていますか?
  6. Java Web StartでNTLM認証を使用できますか?
  7. Java Web StartでHTTPSプロトコルを使用できますか?
  8. セキュリティ・ツールに関する詳細情報を得るためのオンライン・リソースはありますか?

一般的な質問

Java Web Startとは何ですか?

Java Web Startは、プラットフォームに依存しない安全かつ強固な配備用テクノロジを提供します。 これにより、開発者はフル機能のアプリケーションを標準のWebサーバーで使用できるようにすることで、アプリケーションをエンド・ユーザーに配備できます。 Webブラウザがあれば、エンド・ユーザーはアプリケーションを起動するだけで、常に最新のバージョンを安心して利用できます。
トップに戻る

詳しい情報はどこで入手できますか?

Java Web Startのオンライン・ドキュメントを参照してください。

Java Web Startを使用してアプリケーションを配備する方法についての詳細な技術情報(開発者向け)は、開発者ガイドを参照してください。
トップに戻る

なぜJava Web Startが必要なのですか?

アプリケーションをWebから直接配備する簡単で強固かつ安全な方法だからです。 開発者は、簡単にアプリケーションをWeb経由で使用できるようにすることができます。 また、Java Web StartにはJava実行環境(JRE)管理機能も備わっているため、設定が簡単で、ブラウザに依存せず、Webアプリケーションのソリューションを効率的に配備できます。

ユーザーは、webページと同様にアプリケーションに簡単にアクセスできます - 個別のインストール・ステップなし。 ユーザーは、デスクトップから、Webページで利用するよりも豊富ですぐに応答するユーザー・インタフェースを使って、Javaアプリケーションにアクセスして使用できます。 また、Java Web Startベースのアプリケーションは、一度インストールすると、必要なときにいつでもクリックするだけで実行できます。

ユーザーは、アプリケーションを起動するたびにwebから透過的に更新されるため、アプリケーションを手動で更新する必要はありません - そのため、常に最新のバージョンを使用します。
トップに戻る

Java Web Startを使ってアプリケーションを起動するにはどうしたらよいですか?

まず、Webページからリンクをクリックして、新しいアプリケーションを起動します。

アプリケーションを頻繁に使用する場合は、Java Web Startでデスクトップにアイコンを配置できるようにして、デスクトップまたは「スタート」メニューからショートカットを作成します。 Java Web Startから、ショートカットを作成するか、
「スタート」メニューに項目を作成するかを尋ねられることがあります。
「はい」をクリックすると、次回からブラウザを使わないでアプリケーションを起動できます。

Java Web Startには、Javaコントロール・パネルから起動できるアプリケーション・キャッシュ・ビューアも用意されています。 アプリケーション・キャッシュ・ビューアを使用すると、ダウンロードしたアプリケーションを直接起動できます。

javaws jnlp_urlと入力して、コマンド・プロンプトからアプリケーションを起動することもできます。jnlp_urlは、アプリケーションのJNLPファイルのURLです。
トップに戻る

アプリケーションの起動方法には意味があるのですか?

いいえ。どのような方法を使用しても、アプリケーションは同じように起動します。つまり、Webページ、デスクトップ上のショートカット、「スタート」メニュー、またはJavaアプリケーション・キャッシュ・ビューアのどの方法で起動しても違いはありません。

Java Web Startは、必ず最新バージョンのアプリケーションが使用できるかどうかを確認し、使用できる場合は自動的にダウンロードします。

使用しているアプリケーションがデジタル署名されていない場合、Java Web Startはそのアプリケーションを制限された安全な実行環境で起動します。 署名のないアプリケーションや信頼できないアプリケーションが、ローカル・システムやネットワークに対する無制限のアクセス権で実行されることはありません。
トップに戻る

Java Web Startのシステム要件は何ですか?

Java SE 8をサポートするクライアント・システムでは、Java Web Startを使用できます。 「Oracle JDK 8およびJRE 8の動作保証済システム構成」を参照してください。
トップに戻る

Java Web Startが動作するプラットフォームは何ですか?

「Oracle JDK 8およびJRE 8の動作保証済システム構成」を参照してください。
トップに戻る

Java Web Startのサーバー要件は何ですか?

Java Web Startでは、クライアントとサーバーとの通信にHTTPを使用します。 標準のWebサーバーをアプリケーションのホストとして使用できます。 その他のサービス(バージョン・ベースのダウンロード、増分更新、アプリケーションのpack200圧縮など)が必要な場合は、WebサーバーでサーブレットやJava Server Pagesをサポートする必要があります。 これらの機能を実装するサーブレットの例がJDKのサンプル用のディレクトリに収められています。
トップに戻る

Java Web Startは標準に基づいていますか?

はい。 Java Web Startは、Javaコミュニティ・プロセスを通じて開発されたJava Network Launching Protocol (JNLP)テクノロジの製品品質のリファレンス実装です。 JNLPは仕様番号JSR 56です。 ほかのプラットフォーム・ベンダーは、Java Web Startを自分たちのプラットフォームに移植したり、その仕様を実装したりできます。

詳細は、「JSR 56: Javaネットワーク起動プロトコルおよびAPI」を参照してください。
トップに戻る

独自のJava Web Startを実装できますか?

Java Web Startの基盤となるテクノロジであるJava Network Launching Protocol and APIはJava Community Processを通じて開発されているので、どの製品にもこのプロトコルを実装できます。 ただし、JNLPテクノロジを含むJCPテクノロジを実装する場合は、追加のライセンスと条項が満たされなければなりません。
トップに戻る

サポートされるブラウザは何ですか?

「Oracle JDK 8およびJRE 8の動作保証済システム構成」を参照してください。 ただし、MIMEタイプの関連付けを正しく設定してある場合は、どのブラウザでもJNLPファイルを起動できます。 Java Web Startでは、ブラウザの設定を使用し、ブラウザを起動してURLを表示することもあります。この機能は、サポートされていないブラウザでは動作しません。
トップに戻る

Java Web Startの総合的なオンライン・リソースのリストはありますか?

トップに戻る

Java Web Startを使ってアプリケーションを配備できますか?

Java Web Startは、Web配備されるように作成されたJavaアプリケーション用のアプリケーション起動ツールです。

アプリケーションは、1組のJARファイルとJARファイルに含めなければならないすべてのアプリケーション・リソース(イメージ、構成ファイル、ネイティブ・ライブラリなど)で配布する必要があります。 これらのリソースは、メソッドClassLoader.getResource()またはそれと同等のメソッドを使って検索する必要があります。 Java Web Startでは、JARファイルをWebサーバーからクライアントに転送するだけです。

アプリケーションを制限された実行環境(サンドボックス)で実行されるように作成した場合は、ディスクへのアクセスが許可されず、アプリケーションはそれが常駐しているホストにしか接続できないことがあります。
トップに戻る

Java Web Startは、MarimbaやMS SMSのようなソフトウェア配布メカニズムですか?

Java Web Startは、Javaアプリケーション用のアプリケーション起動ツールです。 これを使用すると、ユーザーの操作を最小限に抑えて、Javaプラットフォームに基づいたフル機能のアプリケーションをWebサーバーからクライアント・マシンに簡単に配布できます。

ソフトウェア配布テクノロジは、Java Web Startの1つの局面にすぎません。 これは、セキュリティ、アプリケーションへの更新、エンド・ユーザーにとっての使いやすさ、開発者がアプリケーションを作成するときの柔軟性も備えています。
トップに戻る

Java Web Startはアプリケーションのインストール・プログラムですか?

Java Web Startは、Web配備されるように作成されたJavaアプリケーション用のアプリケーション起動ツールです。 Java Web Startは、ローカルでディスク上のリソースをキャッシュしますが、安全な実行環境やユーザーにほとんど気付かれない更新機能もアプリケーションに提供します。 アプリケーションは使用されるたびに更新されるため、エンド・ユーザーは手動でソフトウェアの更新を行う必要がありません。
トップに戻る

Java Web Startが動作するJavaプラットフォームのバージョンは何ですか?

Java Web Startは、バージョン1.2.2以上のJavaプラットフォーム用に作成されたアプリケーションのみを起動します。
トップに戻る

Java Web StartはJava Plug-inテクノロジ(アプレット)とどのように関係していますか?

これらの2つの方法は非常によく似ています。 主な違いは、ユーザー側の操作です。 JavaアプリケーションまたはアプレットがWebページとのやりとりを必要とし、Webブラウザと強く結び付いている場合は、アプレットがソリューションとなることがあります。 一方、ブラウザの独立性が重要な場合は、Java Web Startが選択した配備プラットフォームとなります。 このほかにも違いはいくつかありますが、これが基本的な相違点です。

Java Plug-inテクノロジを使用すると、ユーザーはブラウザ内部でJavaアプレットを実行できます。

Java Web Startを使用すると、任意のブラウザでフル機能のアプリケーションをダウンロードできます。 アプリケーションを一度ダウンロードして起動すると、アプリケーションを引き続き動作させながら、ブラウザを閉じることができます。 アプリケーションは、ブラウザが開いていなくても機能できます。 つまり、ブラウザをシャットダウンしたり、別のWebページに移動しても、アプリケーションは引き続き実行されます。
トップに戻る

技術的な問題

Java Web Startを動作させるにはアプリケーションを変更する必要がありますか?

アプリケーションがJava SE用に記述され、JARファイルのセットとして提供されている場合、アプリケーションを改訂する必要はありません。 Java Web Startはpublic static void main(String[] args)メソッドを呼び出してアプリケーションを起動するため、必ずアプリケーションがJARファイルからすべてのリソース(イメージやリソース・バンドルなど)を取り出すようにしてください。

アプリケーションにシステムに対する無制限のアクセス権(ネットワークやディスクへのアクセス権)が必要な場合は、コードに署名する必要があります。
トップに戻る

「アプレットからアプリケーションへの移行パスはありますか。」 ??

Java Web Startは、主としてアプリケーションの配備用に設計されています。 アプリケーションの要件はすべてJNLPファイルに指定し、ユーザーは介入しません。 これには、従来のAppletViewerとほとんど同じ方法でアプレットを起動する機能があります。 この組込み型のAppletViewerを使えば、Java Web Startを必要とする既存のアプレットを簡単に移行できます。 ただし、この機能はPlug-inを完全に実装するためのものではありません。 Plug-inは、アプレットの主要な起動手段です。 Java Web Startの組込みAppletViewerには、リソースとしてクラス・ファイルを指定できず、ポリシー・ファイルを受け入れないなどの制限があります。
トップに戻る

VM引数をJava実行環境に渡す方法はありますか?

Java Web Startでは、いくつかのJVMフラグをj2se要素のjava-vm-args属性で設定できます(開発者ガイドを参照)。 すべての設定を可能にすると、セキュリティが脅かされるだけでなく、プラットフォーム間や実装間の移植性が制限される可能性があります。 j2se要素のinitial-heap-sizeとmax-heap-sizeの各属性を使用すると、初期ヒープ・サイズと最大ヒープ・サイズを設定できます。たとえば、次のようになります。

<j2se version="..." max-heap-size="100M"/>

トップに戻る

サーバーのタイムスタンプに依存したくありません。 どうしたら、バージョン化されたJARを指定でき、JARの増分更新を入手できますか。

Java Web Startでは、バージョン化されたJARと増分更新をサポートしています。 更新が利用できるかどうかを調べる場合は、タイムスタンプ情報に頼るのではなく、必要なJARファイルの正確なバージョンを指定できます。 また、バージョンIDを使用すると、あるバージョンから別のバージョンに増分更新を提供できます。 詳細は、「JNLP仕様」または「開発者ガイド」を参照してください。
トップに戻る

JARファイルはアプリケーション間で共有されますか?

JNLPクライアント(Java Web Startなど)がダウンロードする各JARファイルは、URLによって一意に識別されます。 2つのJNLPファイルが同じURLを使用する場合、リソースは一度だけダウンロードされ、共有されます。 これは、Webブラウザで使用されるキャッシュ実装と似ています。
トップに戻る

独自のスプラッシュ画面を提供するにはどうしたらよいですか?

最初のスプラッシュ画面は、Javaのロード中にJava Web Startが用意する必要があります。 そのあとのアクセスでは、ユーザーが次のタグを使ってスプラッシュ画面に使用するイメージ・ファイルをJNLPファイルに指定できます。

<icon href="mysplash.jpg" kind="splash"/> 

ここで、mysplash.jpgはスプラッシュ画面のイメージ・ファイルです。 最初にアプリケーションが実行されるときは、標準のスプラッシュ画面が使用されます。 そのあとは、指定したイメージが使用されます。
トップに戻る

ローカル・システムでアプリケーション状態を保存するにはどうしたらよいですか?

サンドボックス内で実行されるアプリケーションは、PersistenceService APIを使って状態を格納できます。 このAPIは、HTMLページのcookieに似ています。 したがって、クライアント・コンピュータ上に永続情報を格納する安全な方法です。 詳細は、次を参照してください。

トップに戻る

私のアプリケーションには特定のバージョンのJREが必要です。 このJNLPファイルを指定するにはどうしたらよいですか。

タグ<j2se version="versionNum">は、プラットフォーム・バージョン(versionNumは1.2, 1.3, 1.4, 1.5, 1.6, 1.7, および1.8)を指定します。

特定の製品バージョンを要求するには、href属性にベンダーのURLを組み込みます。 OracleのJREの場合、URLはhttp://javadl.sun.com/webapps/jawsautodl/AutoDL/j2seです。たとえば、次のJ2SEタグは、Sunの1.3.1実装をリクエストします:

<j2se version="1.3.1*" href="http://javadl.sun.com/webapps/jawsautodl/AutoDL/j2se"/>

Javaコントロール・パネルの「Java」タブに、インストールされているJREのすべてのバージョンが表示されます。
トップに戻る

マニフェスト・ファイルのClass-Pathを信頼できますか?

Java Web Startでは、マニフェスト・ファイルのClass-Pathエントリをサポートしていません。 Class-Path属性は完全にファイル中心であるのに対し、Java Web StartとJNLPはWeb中心(URLベース)です。 このため、2つのモデルを1つにまとめるのは簡単ではありません。

Class-Pathエントリに頼るのではなく、JNLPファイルに含まれる複数のJARファイルの一覧を表示できます。たとえば:

<resources>
 <jar href="A.jar"/>
 <jar href="B.jar"/>
</resources>

JNLPファイルでは、<extension... >要素を使用して、一組のJARファイルとの依存関係を別のJNLPファイルに分けることができます。 このため、Class-Pathエントリを使用した場合と同様に再利用しやすく、保守も簡単に行えます。 この機能については、仕様の中で説明されています。

JNLPは、アプレットと同様に、Just-in-Timeダウンロード・メカニズムも実装します。 JNLPファイル内のリソースごとに、どの部品を遅延ダウンロードするかを指定できます。 即時ロードされたリソースは、アプリケーションの起動前にロードされ、遅延ロードされたリソースは後でロードされます。 デフォルトは、即時ダウンロードです。 さらに、この仕様には、使用可能なリソースについてJava Web Startをプログラムで問い合せて、ダウンロードをリクエストできるAPIが含まれています。 したがって、ダウンロード/ネットワーク対応のアプリケーションを作成できます。

詳細は、「JNLP仕様」を参照してください。
トップに戻る

アプリケーションがネイティブ・コードに依存しているか、それを使用している場合でもJava Web Startを使用できますか?

Java Web Startを使用して、DLLやSOなどのネイティブ・コードに依存するJavaテクノロジベースのアプリケーションを配備できます。 必要なネイティブ・ライブラリを指定するには、<nativelib ...>要素を使用します。 詳細については、開発者ガイドを参照してください。
トップに戻る

Class.forNameとClassLoader.getSystemClassLoaderを使用してアプリケーション内部にリソースをロードするにはどうしたらよいですか?

Java Web Startでは、ユーザー・レベルのクラス・ローダーを使用して、JNLPファイルに指定されたすべてのアプリケーション・リソースをロードします。 このクラス・ローダーによって、JNLP仕様で定義されたセキュリティ・モデルとダウンロード・モデルが実装されます。 これは、AppletViewerやJava Plug-Inの動作と変わりありません。

ただし、このクラス・ローダーには、Class.forNameがJNLPファイルに定義されているリソースを検索しないという副作用があります。 システム・クラス・ローダー(ClassLoader.getSystemClassLoader)を使用してリソースやクラスを検索する場合も同様です。

Java Web Startでアプリケーション・リソースを検索するには、アプリケーションをロードしたクラス・ローダーを使用します。たとえば、アプリケーションのメイン・スレッドで次のコールを使用します:

this.getClass().getClassLoader();

次のメソッドも使用できます。

Thread.getCurrent().getContextClassLoader();
トップに戻る

コマンド行からJava Web Startを起動するにはどうしたらよいですか?

Java Web Startは、次のようにコマンド行から起動できます。

javaws [options] your-app-JNLP-URL

your-app-JNLP-URLは、アプリケーションのJNLPファイルのロケーションです。 たとえば、次のコマンドは、(Javaチュートリアルから) Dynamic Tree Demoアプリケーションを起動します。


javaws https://docs.oracle.com/javase/tutorialJWS/samples/deployment/dynamictree_webstartJWSProject/dynamictree_webstart.jnlp

コマンド行の構文の詳細は、開発者ガイドを参照してください。
トップに戻る

異なる証明書によって署名された複数のJARファイルを使用するにはどうしたらよいですか?

JNLP 1.0仕様では、1つのJNLPファイルで使用されるJARファイルはすべて同じ証明書で署名される必要があります。 この制限により、ユーザーは同じソースから複数の証明書を受け入れる必要がなくなり、またJava Web Startではユーザーがアプリケーションに使用されたすべての証明書を受け入れたかどうかを確認できます。

ただし、Java Web Startでは、コンポーネント拡張メカニズムと複数のJNLPファイルを使用して、異なる証明書で署名された複数のJARファイルを使用できます。 唯一の要件は、JARファイルに異なるパッケージのコードが含まれていることです。 次の例を参照してください。

<jar href="myjar1.jar"/>
<jar href="jh.jar"/> 

次のように指定します。

<jar href="myjar1.jar"/>
<extension name="Java Help" href="help.jnlp"/> 

次に、次の内容を含むhelp.jnlpファイルを追加します。

<?xml version="1.0" encoding="utf-8"?>
 <jnlp spec="1.0+"
codebase="http://ws503" href="Help.jnlp">
 <information>
<title>JavaHelp</title>
<vendor>Sun Microsystems, Inc.</vendor>
 </information>
<resources>
<jar href="jh.jar"/>
</resources>
 <component-desc/>
</jnlp> 

トップに戻る

Java Web Startがインストールされているかどうかを調べるにはどうしたらよいですか?

Java Web Startがインストールされているかどうかを調べる場合は、簡単なJavaScriptまたはVBScriptを作成できます。 詳細については、開発者ガイドを参照してください。
トップに戻る

なぜブラウザにJNLPファイルがプレーン・テキストとして表示されるのですか?

これは、ほとんどの場合、WebサーバーがJNLPファイルの適切なMIMEタイプを認識していないために発生します。 Java Web Startでは、Webサーバーに1つだけ変更を加える必要があります。つまり、ファイル拡張子(通常はjnlp)とMIMEタイプapplication/x-java-jnlp-fileとの関連付けを作成する必要があります。 このためのステップは、使用しているWebサーバーによって異なります。

さらに、企業がプロキシ・サーバーを使用している場合は、必ずファイルの更新版が返されるようにします。このためには、Webサーバー上のリソースのタイムスタンプを更新して、プロキシがそのキャッシュを更新するようにします。
トップに戻る

なぜJava Web Startは常にJARファイルをIISサーバーから再ロードするのですか?

IISサーバー上のファイルのタイムスタンプが未来を指している場合、IISは現在の時間を最終更新時間として返します。 これにより、タイムスタンプが常に新しくなるので、Java Web StartはJARを再ロードします。
トップに戻る

JnlpDownloadServletでPack200圧縮を使用できますか?

はい。 JDKのサンプル・ディレクトリに配布されたJnlpDownloadServletでは、pack200がサポートされるようになりました。 yourfile.jaryourfile.jar.pack.gzとともにデプロイすると、クライアントがJava Web Startを実行しているときにパックされたファイルがダウンロードされます。
「トップに戻る」

アプリケーションのインスタンスを1つだけ確実に実行する最良の方法は何ですか?

アプリケーションが起動したら、すぐにSingleInstanceServiceを使用して唯一のインスタンス(singleton)として登録します。 唯一のインスタンスとして登録する前にアプリケーションを再度呼び出すと、別のJava VMが起動します。

プログラムを終了する前に必ず登録を解除してください。
トップに戻る

「JNLPファイルで設定されたプロパティはいつ設定されますか。」

通常、JNLPファイル内のプロパティは、そのJNLPファイルにリストされた最初のリソースがロードされるまで設定されません。 これにより、プロパティはいずれかのコードが実行される前に必ず設定されますが、プロパティの中にはほかのパッケージがロードされる前に設定する必要があるものもあります。 一部のプロパティは、Java Web Startによって"セキュア"とみなされ、メインのJNLPファイルで見つかった場合、呼出し元のVM (-Dname=value)に引数として渡されます。

このバージョンの"セキュア"プロパティのリストは、「開発者ガイド」にあります。
トップに戻る

「ダウンロードしたJNLPファイルのファイルが見つからない原因は何ですか。」

JNLPファイルをクリックすると、Internet Explorerによってファイルがダウンロードされ、Java Web Startが起動されますが、次のメッセージが表示されます: "指定されたファイル/URLをロードできませんでした: C:\DocumentsおよびSettings\...\application [1].jnlp" .

この問題は、Internet Explorerでのみ発生します。 この問題はキャッシュがいっぱいの場合やIEでキャッシュをオフにした場合に発生することがありますが、通常はWebサーバーかプロキシ・サーバーからキャッシュ禁止(no-cache)指示が出された場合に発生します。 IEは、このディレクティブを尊重し、JNLPファイルをディスクに書き込まないため、Java Web Startでは見つかりません。 これは、Tomcatベースのサーバーのアップグレード時に頻繁に発生します。 以降のバージョンでは、web.xmlのセキュリティ制約の範囲内にあるリソースに対して、デフォルトでキャッシュ禁止(no-cache)指示が設定されます。 関連するURIがweb.xmlのセキュリティ制約を受けないようにしてください。
トップに戻る

「署名付きJARファイル(JCE拡張など)を他の目的に使用するにはどうすればよいですか。」

jarへの署名を乗算して、別の既存の証明書チェーンにコード署名証明書を追加できます。 以前のバージョンでは、jarを完全なアクセス権(all-permissions)を持たないコンポーネント拡張機能として実行するか、コード署名証明書を追加する前に既存の証明書を削除する必要がありました(多くの場合、そのパッケージは操作不能になりました)。
トップに戻る

「Gnomeで一部のLinuxプラットフォームでAssociation機能を使用できないのはなぜですか。」

関連付け機能には、特にlibgnomevsf-2.soが必要です。 このライブラリがない場合、関連付けはサポートされません。
トップに戻る

「JNLP MIMEタイプをブロードキャストするようにサーバーを設定するにはどうすればよいですか。」

MIMEタイプを追加する方法は、Webサーバーごとに異なります。 たとえば、Apache Webサーバーの場合、.mime.types設定ファイルに次の行を追加する必要があります。

application/x-java-jnlp-file JNLP

使用しているWebサーバーの詳細については、付属のマニュアルを参照してください。
トップに戻る

JnlpDownloadServletを使用するようにサーバーを設定するにはどうしたらよいですか?

サーブレットの使用方法の詳細は、開発者ガイドのセクションを参照してください。 アプリケーションをWebアーカイブにパッケージ化する必要はありません。
トップに戻る

アプリケーションを一意に識別するにはどうするのですか?

アプリケーションは、通常、href属性(そのJNLPファイルのURL。)の値によって識別されます JNLPファイルにhref値がない場合は、メインJARファイルのhref値で識別されます。 複数のアプリケーションが同じメインJARファイルを共有する場合は、href値が含まれている必要があります。そうしないと、同じアプリケーションとして扱われます。

Javaアプリケーション・キャッシュ・ビューアには、href値がないアプリケーションも含めて、すべてのアプリケーションが表示されます。 ビューアは、href値がある場合にのみ、アプリケーションをオンラインで起動できます。 href値がない場合、JNLPファイルで(<offline-allowed>要素を含む)が許可されていると、オフラインで起動できます

以前のバージョンでは、アプリケーション・マネージャにhrefが指定されているアプリケーションのみが表示されます。

ショートカットを作成する場合も同様です。 href値がある場合のみオンラインで起動するショートカットを作成し、<offline-allowed>要素が指定されている場合のみオフライン・ショートカットを作成できます。
トップに戻る

JNLPアプリケーションに関連付ける複数のファイル拡張子やMIMEタイプはどのように作成するのですか。

JNLPアプリケーションへ関連付ける複数のファイル拡張子やMIMEタイプを作成する場合、複数の関連タグを使用することをお薦めします。 また、各関連タグには、ファイル拡張子とMIMEタイプの両方を指定する必要があります。 たとえば、

    <association extensions="aaa" mime-type="x-application/aaa"/>
    <association extensions="bbb" mime-type="x-application/bbb"/>
トップに戻る

「ネイティブ・コードからのコール時にFindClass()が失敗することがあるのはなぜですか。」

EventDispatchスレッドでコールされる可能性のあるJNIコードがFindClass()をコールすると、失敗する可能性があります。 詳細は、FindClassファンクションを参照してください。

セキュリティに関する質問

Java Web Startのセキュリティ保護はどのように行われているのですか?

セキュリティは、Java Web Start設計の重要な考慮事項です。  Java Web Startでは、すべてのアプリケーションがデフォルトで安全な「サンドボックス」で起動されます。
トップに戻る

安全なサンドボックス(sandbox)とは何ですか?

安全なサンドボックスにあるアプリケーションは、ディスクやネットワークなどのローカルのコンピューティング・リソースへのアクセスが制限されます。
トップに戻る

Java Web Startの安全なサンドボックスはアプレットのサンドボックスに比べてどのくらい柔軟性が高いのですか?

アプレットのサンドボックスと同様に、すべてのアプリケーションはデフォルトではサンドボックス環境で実行されます。 ただし、Java Web Startには安全なAPIが用意されており、アプリケーションはそれを使用してユーザーの制御下にあるローカル・ディスクからファイルをインポートしたりエクスポートしたりできます。 このAPIには、ファイルの保存やファイルのオープンといった操作用のダイアログ・ボックスがありますが、それらのダイアログ・ボックスは実際にはアプリケーションそのものではなく、Java Web Startによってレンダリングされます。

このサンドボックスのデザインは、HTMLを使用して作成できるものと似ています。 HTML形式のファイル入力フィールドを使用すると、ユーザーはローカル・ディスクからファイルを選択し、(パスの除外)およびcontentという名前をwebサーバーに送信できます。 同様に、ほとんどのブラウザでは「名前をつけて保存(Save as...)」オプションをサポートしています。
トップに戻る

アプリケーションがシステムに対する無制限のアクセス権を取得できるようにするにはどうしたらよいですか?

無制限のシステム・アクセスを要求するアプリケーションには、デジタル署名が必要です。 そのようなアプリケーションを最初に起動すると、セキュリティ用のダイアログ・ボックスが表示されます。 Java Web Startでは、アプリケーションを実行する前に、デジタル証明書に同意するようユーザーに要求します。 ユーザーが証明書に同意すると、そのあとの呼出しではセキュリティ用のダイアログ・ボックスは表示されなくなります。
トップに戻る

JARファイルの暗号化されたダウンロードはサポートされていますか?

サーバーからクライアントに転送されるデータの暗号化をサポートすることは非常に重要です。 これは、今後の課題として重要なポイントの1つであり、Java Web Startで起動されるアプリケーションでHTTPSライブラリを確実に使用できるようにする予定です。 HTTPSはオプション・パッケージでサポートされることがあり、その場合はアプリケーションが依存していることを指定する必要があります。

サーバーからクライアントに転送されるJARファイルの暗号化は必要ないかもしれません。 なぜなら、クラス・ファイルが回線上で暗号化されている場合でも、クライアント側で復号化してディスクに格納する必要があるため、JVMはそれらのクラスをロードできるからです。 したがって、クラッカがJARファイルの暗号化をすり抜けるのは非常にたやすいことである可能性があります。

その代わりに、JARファイルにとって重要なことは、ファイルを署名付きにして、想定されているベンダーからアプリケーションが確実に入手されるようにすることです。 これはすでにサポートされています。
トップに戻る

Java Web StartでNTLM認証を使用できますか?

はい、Java Web StartでWindows NT LAN Managerの(NTLM)認証を使用できます。
トップに戻る

Java Web StartでHTTPSプロトコルを使用できますか?

はい。
トップに戻る

セキュリティ・ツールに関する詳細情報を得るためのオンライン・リソースはありますか?

次のサイトを参照してください。

トップに戻る


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