2017-01-16 11 views
1

'resource'라는 이름을 가진 폴더에 대해 뭔가 다른 점이 있습니까? '리소스'에 파일이 있는데로드하려고하면 제대로 작동합니다.Java 리소스 폴더 이름 대 일부 다른 이름

ClassLoader loader=Thread.currentThread().getContextClassLoader(); 
InputStream propFile=loader.getResourceAsStream("KCBSEvents/resource/build.properties"); 

속성을로드하려면 prop.load (propFile)를 수행합니다.

'Images'라는 디렉토리에서 이미지를로드하는 데 비슷한 로직을 사용하려고하면 오류가 발생합니다. 두 디렉토리 모두 내 트리에서 같은 레벨에 있습니다.

ClassLoader loader=Thread.currentThread().getContextClassLoader(); 
java.net.URL logoURL=loader.getClass().getResource("KCBSEvents/Images/KCBSLogo.jpg"); 

결과적으로 'logoURL'은 null입니다. 나는 단지 디렉토리 이름 'resource'또는 'getResource'에 대한 마술이 'getResourceAsStream'과 다르게 작동한다는 결론을 내릴 수 있습니다. 누군가 일어나는 일을 설명 할 수 있습니까? TIA.

+0

글쎄, 스트림으로 스트림을 반환하지만, 아마도 관련 리소스 : http://stackoverflow.com/questions/6608795/what-is-the-difference-between-class-getresource-and-classloader-getresource –

+1

아마도 images 폴더를 resources 폴더에 두어야합니까? –

+0

URL 또는 무엇을 갖고 싶습니까? –

답변

0

누군가 다른 사람이 이걸 실행하면 나는 결국 그것을 알아 냈습니다. 로고에 바이트 스트림을 사용해야했습니다.

ClassLoader loader=Thread.currentThread().getContextClassLoader(); 
logo = new JLabel(new ImageIcon(ImageIO.read(loader.getResourceAsStream("KCBSEvents/Images/KCBSLogo.jpg")))); 

jpg 파일이있는 폴더와 아무 관련이 없습니다.