2011-05-11 9 views
2

나는 Applet을 가지고 있고 나는 getCodeBase()를 사용할 때 I는 다음과 같습니다 일반 URL을 얻을 :차이는

http://localhost:8080/x/y/z/ 

나는 자원을 얻을 수 getImage(getCodeBase(), "images/img.gif") 같은 다른 Applet 방법을 사용할 수 있습니다 (같은 이 경우 이미지).

jar:http://localhost:8080/x/y/z/a/b/lib/myjar.jar!/images/img.gif 

이 다른 쪽보다 더 나은 방법이다 : 나는 Applet.class.getResource("/images/img.gif")를 사용하는 경우

는 그러나, 나는 다음과 같이 URL을 참조? 각 장단점은 무엇입니까?

답변

3

후자는 classpath 기준입니다. img.gif은 jar 파일 내에 위치하며 (애플릿 jvm의 클래스 경로에서 찾을 수 있습니다.)

전자는 일반 URL이며 gif 파일이 지정된 위치의 서버에 있음을 의미합니다.

다른 경우에 사용되므로 "좋음"또는 "좋지 않음"옵션이 없습니다. 애플릿에서 이미지 만 필요하면 다른 곳에 배치하지 말고 병에 배치해야합니다. (그러나 이것은 보편적이지 않습니다)

+0

그렇다면 클라이언트가 jar를 다운로드하면 리소스를 얻기 위해 서버로 돌아갈 필요가 없지만 일반적인 URL은 서버로 돌아 가야합니다. 그래서 브라우저가 Applet을 만날 때 Applet이있는 전체 jar를로드하거나 필요로하는 클래스 만로드합니까? – BigMac66

+0

제가 생각하기에 전체 병을 다운로드합니다. – Bozho