Многократная загрузка 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
Если по какой-то причине это не помогает :) возможно, предоставьте свои ресурсы / изображения вдоль JAR-файла апплета на веб-сервере и обращайтесь к ним с помощью отдельных HTTP-запросов (да, это уродливо и да, это не уменьшает количество необходимых загрузок , но это по крайней мере уменьшает объем данных, которые должны быть переданы).
Другие советы
Простое удаление всех экземпляров URLConnection.setDefaultUseCaches (false) решит проблему.
Пожалуйста, обратитесь за более подробной информацией.
http: // java-junction .blogspot.com / 2009/11 / апплет-банка-кэширование не-working.html р>
Только обходной путь:
Вы можете поместить свои изображения в zip-файл внутри банки, получить его с помощью ZipInputStream и извлечь изображения оттуда.
Какую виртуальную машину Java вы используете?И какой сервер вы используете?
- В плагине браузера Linux имеется ошибка.
- Если сервер не отправляет дату изменения, Java не сможет кэшировать файл jar.
Если ваш апплет всегда загружает 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 р>