2014-01-07 6 views
0

내 이미지의 모든 폴더에 /res/가있어이 이미지에 액세스 할 수 있으며 클래스의 리소스 폴더를 사용하려고합니다. 는 그래서 난 null을 반환하는 리소스로 이미지로드

getClass().getResource("/res/image.png"); 

가 나는 또한 내가 또한 고해상도의 앞 /없이 같은 일을 시도
getClass().getResourceLoader("/res/image.png"); 

을 시도 사용할 수 있습니다.

내가 Sytem.out.println

System.out.println(this.getClass().getResource("")); 

한 클래스 경로를 확인하고 내 bin 폴더의 경로를 반환

때 나는 내/입술 폴더에서 이미지를 얻으려고 이제까지 항상 null을 반환합니다. Eclipse 내에서 res 폴더가 클래스 폴더로 선택되어 지정됩니다.

어떻게 해결할 수 있습니까?

답변

3

이클립스에서 소스 폴더로 선언 된 폴더의 내용은 클래스 경로의 루트에 놓입니다. 즉

/res // could be called anything 
    /image.png 

은 유지하려는 경우

/res 
    /res 
     /image.png 

아래에 넣어,

/ (classpath root) 
    /image.png 

은 그래서 당신은 또한

getClass().getResource("/image.png"); 

로 액세스 할 수 있습니다에 나타납니다 그대로입니다.

+0

세 번째 코드 블록에는 /는 필요 없습니다. –

+1

@ opiop65'getClass()'에 의해 리턴 된 클래스가 어디에 의존 하느냐에 달려있다. –

+1

@ opiop65 만일 모든 리소스 로딩 문제에 대해 $ /를 사용하여 문제를 해결했다면 * 나는 좋은 휴가를 보낼 여력이 있습니다. –