패키지에서 이미지를 로딩하면 분명 잘 로딩될 것이다.
하지만 jar로 만드는 순간 이미지를 못불러온다..
이럴땐...
URL url = getClass().getClassLoader().getResource("경로명");
ImageIcon icon = new ImageIcon(url);
이렇게 해야 한다..
여기서 중요한것은 경로명에
패키지내에서의 절대경로라는것이다.
c:\aaa\ 라는 폴더에 아래와 같은 패키지를 구성했다면..
java\util\
java\main\
java\temp\image
url의 경로는 "java/temp/image/이미지명.gif" <<--이렇게 해야 한다.
그리고
jar파일에서 다른 폴더(a라는 폴더)에 있는 클래스파일을 로딩한다고 해보자.
어떤 수를 써도 안될것이다...이럴땐 jar파일과 a폴더가 같은 폴더내에 위치해 있을 경우
mf파일에 Class-Path: . 폴더명/ 을 추가하면 된다.
그리고 로딩할때는 그냥 클래스명만 사용하면 된다. 이유는 클래스패스가 해당폴더로 잡혀있기 때문에 기본으로 그 폴더에서 클래스를 찾기 때문이다..
마지막으로
위에서 언급한 클래스패스에 지정된 폴더가 c:\bb 라고 가정해보자
그럼 로딩할 클래스가 모두 그곳에만 위치해야한다..
만약 bb폴더 하위로 cc라는 폴더를 만들어서 그곳에 클래스를 넣어둔다면
로딩이 될까? 물론 클래스 경로를 cc/클래스명 으로 하고 말이다.
해보면 클래스를 찾을수 없다고 나온다.
이럴땐 해당 클래스를 패키지를 선언 해야 한다.
어떻게??
packge cc;
동적바인딩 한다면
Class.forName(cc.클래스명)
이렇게 하면 된다
'IT_Programming > Java' 카테고리의 다른 글
[펌] Using Foreach Loops in J2SE 1.5 & The enhanced for loop (0) | 2007.06.23 |
---|---|
JTree의 기본 사용법 (0) | 2007.05.19 |
Generics (0) | 2007.03.12 |
[펌] "시작하는 JAVA프로그래머를 위해" URL 리스트 (0) | 2007.03.07 |
바이오 리듬 구하기 (0) | 2007.03.04 |