2

このコードはアプレットにあります。アプレットは問題なく動作しますが、不要な重複ダウンロードがたくさんあります。特に、各「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
}

どうすればこれを回避できますか?

4

5 に答える 5

3

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

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

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

于 2009-11-29T11:03:35.043 に答える
0

jar がキャッシュされているにもかかわらず、アプレットが常に jar をダウンロードする場合はURLConnection、API を介して のキャッシュをURLConnection.setUseCaches無効にしていないことを確認してくださいURLConnection.SetDefaultUseCaches

ImageIconリソースを取得するための の基本的なメカニズムはURLConnection. を呼び出すURLConnection.setDefaultUseCaches(false)と、「すべての静的状態の一部」が設定さURLConnectionsれます。これにより、JRE はキャッシュを無視し、アクセスするたびに jar 全体を再ダウンロードします。

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

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

于 2011-07-29T11:55:58.313 に答える
0

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

  • Linux のブラウザ プラグインにはバグがあります。
  • サーバーが変更日を送信しない場合、Java は jar ファイルをキャッシュできません。
于 2009-03-09T21:32:24.443 に答える
0

唯一の回避策:

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

于 2009-03-05T13:49:08.070 に答える