5

アプレットまたはJavaWebStartとして実行される大規模なJavaアプリケーションがあります。そしてそれはますます成長します。通常、ユーザーはクラスのごく一部しか必要としません。Javaは、クラスが見つかるまで、すべてのjarファイルをロードするどのjarファイルでどのクラスを見つけることができるかを知らないためです。存在しないクラス(リソースバンドルなど)をロードする場合は、すべてのjarファイルをロードします。これにより、非常に大きな小さな帯域幅での開始時間が短縮されます。

必要な場合にのみプラグインをロードできる小さなフレームワークはありますか?または、必要に応じてバックグラウンドで実行する方がよいでしょうか。

もちろん、フレームワークはサイズが大きいため、開始時間を遅らせるべきではありません。

ダウンロードにはURLClassLoaderを使用する必要があると思います。

4

3 に答える 3

2

カスタム クラス ローダーを実装できると聞き、このテーマに関するチュートリアルを見てきました。これにより、ダウンロードされるものをより正確に制御できるはずです。申し訳ありませんが、私はこれを自分で試していません。

于 2008-12-22T08:06:25.987 に答える
1

これはあなたの質問に対する直接的な回答ではありませんが、 Pack200を使用して JAR ファイルのサイズを大幅に縮小することで、ダウンロードの遅延を軽減できる可能性があります。どれだけ効果があるかは、以前記事にしました。

それ以外では、JAR ファイルの遅延ダウンロードを使用するという asalamon74 の提案に同意します。

おそらく、JAR の順序を最適化して、最初にロードされるクラスを含む JAR が先に表示されるようにすることはできますか?

于 2008-12-20T22:25:12.697 に答える
0

私は(jnlpなしではわかりませんが)あなたはすでにダウンロードプロパティを使用していると思います:

<jar href="sound.jar" download="lazy"/>

webstartにはjarの内容に関する情報がないため、クラスが欠落している場合はすべてをロードすると思います。

試したことはありませんが<package>、クラスを検索する場所をWebスタートにヒントを与えることができるタグがあります。この(非常に短い)ドキュメントを確認します。

于 2008-12-20T17:52:50.157 に答える