質問

このコードはアプレットにあります。アプレットは正常に動作しますが、不要な重複ダウンロードが大量に発生します。特に、各「getResource」は、 .JARファイルのダウンロードをトリガーします。

static {
    ac = new ImageIcon(MyClass.class.getResource("images/ac.png")).getImage();
    dc = new ImageIcon(MyClass.class.getResource("images/dc.png")).getImage();
    //...other images
}

これをどのように回避できますか?

役に立ちましたか?

解決

アプレットをHTMLページに含めますか?その場合、ここで説明されているように、JARキャッシングを有効にしてみてください: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html

何らかの理由でそれが役に立たない場合:)おそらく、Webサーバー上のアプレットJARに沿ってリソース/画像を公開し、個別のHTTPリクエストを使用してそれらに到達します、少なくとも転送する必要があるデータの量は減ります。

他のヒント

URLConnection.setDefaultUseCaches(false)のすべてのインスタンスを削除するだけで問題が解決します。

詳細については、参照してください。

http:// java-junction .blogspot.com / 2009/11 / applet-jar-caching-not-working.html

回避策のみ:

jar内のzipファイルに画像を入れ、ZipInputStreamを使用して画像を取得し、そこから画像を抽出できます。

どのJava VMを使用していますか?そして、どのサーバーを使用しますか?

  • Linuxのブラウザプラグインにバグがあります。
  • サーバーが変更日を送信しない場合、Javaはjarファイルをキャッシュできません。

jarがキャッシュされているにも関わらずアプレットが常にjarをダウンロードする場合、 URLConnection.setUseCaches および< code> URLConnection.SetDefaultUseCaches 。

リソースを取得するための

ImageIcon の基になるメカニズムは、 URLConnection です。 URLConnection.setDefaultUseCaches(false)を呼び出し、すべての URLConnections &quotの静的状態の一部を設定します。 JREはキャッシュを無視し、アクセスするたびにjar全体を再ダウンロードします。

setDefaultUseCaches のすべてのインスタンスを削除するだけで問題が解決します。

これは、 http:からの再投稿です。 //java-junction.blogspot.com/2009/11/applet-jar-caching-not-working.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top