문제

애플릿 에이 코드가 있습니다. 애플릿은 정상적으로 작동하지만 불필요한 중복 다운로드가 많이 있습니다. 특히, 각 "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 페이지에 포함 시키십니까? 그렇다면 여기에 설명 된대로 항아리 캐싱을 활성화하십시오. http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/applet_caching.html

그것이 어떤 이유로 든 도움이되지 않는다면 :) 아마도 웹 서버의 애플릿 병을 따라 리소스 / 이미지를 노출시키고 별도의 HTTP 요청을 사용하여 연락 할 수 있습니다 (예, 추악하고 예, 필요한 다운로드 수를 줄이지는 않지만 IT 적어도 전송 해야하는 데이터의 양을 줄입니다).

다른 팁

모든 urlconnection.setDefaultUseCaches (false) 인스턴스를 제거하면 문제가 해결됩니다.

자세한 내용은 참조하십시오.

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

해결 방법 만 :

이미지를 항아리 안쪽의 zip 파일에 넣고 ZipinputStream을 사용하여 이미지를 추출 할 수 있습니다.

어떤 Java VM을 사용하십니까? 그리고 어떤 서버를 사용하십니까?

  • Linux의 브라우저 플러그인에는 버그가 있습니다.
  • 서버가 수정 날짜를 보내지 않으면 Java는 JAR 파일을 캐시 할 수 없습니다.

항아리가 캐시 된 상태에서 애플릿이 항상 항아리를 다운로드하면 비활성화하지 않았는지 확인하십시오. URLConnectionAPI를 통한 캐싱 : URLConnection.setUseCaches 그리고 URLConnection.SetDefaultUseCaches.

ImageIcon자원을 가져 오기위한 기본 메커니즘은 URLConnection. 부름 URLConnection.setDefaultUseCaches(false), "모두의 정적 상태의 일부를 설정합니다. URLConnections"JRE가 캐시를 무시하고 액세스 할 때마다 전체 항아리를 다시로드하게합니다.

단순히 모든 인스턴스를 제거합니다 setDefaultUseCaches 문제를 해결합니다.

이것은 다음의 재 게시입니다. http://java-junction.blogspot.com/2009/11/applet-jar-caching-not-working.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top