JAR複数ダウンロード
-
03-07-2019 - |
質問
このコードはアプレットにあります。アプレットは正常に動作しますが、不要な重複ダウンロードが大量に発生します。特に、各「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