2012-09-15 4 views
0

Eclipse를 사용하고 있으며 다음 코드를 사용하여 폴더에서 이미지를로드합니다.jar에 이미지로드

이미지 폴더는 프로젝트 폴더의 bin 폴더 내에 있습니다. 이클립스에서로드 할 때 잘 작동하지만 항아리로 내보낼 때로드되지 않습니다. jar 파일의 모든 가능한 위치에 이미지 폴더를 넣으려고했으나 그렇지 않습니다.

병에 이미지 폴더를로드하는 방법은 무엇입니까?

답변

2

대신 getResourceAsStream() 메서드를 사용하여 InputStream 인스턴스를 파일 데이터로 가져올 수 있습니다.

업데이트 : jar 파일에서 파일 로딩은 클래스 로더의 도움으로 이루어집니다. 그리고 내부 리소스의 InputStream (FileInputStream 아님)의 인스턴스를 제공 할 수 있습니다 (이미지 파일 또는 사운드 파일 또는 텍스트 파일 임). 항아리 안에서 파일 쓰기가 작동해서는 안됩니다.

+0

public Image getImage(String img){ return new ImageIcon(getClass().getResource(img)).getImage(); } 

당신이 JAR의 루트에서로드하려면

, 내 코드를 적응이 사용하고 있습니다. 문제는 이미지 만로드하지만 사운드 파일이나 파일 쓰기는 Eclipse 외부에서 작동하지 않는다는 것입니다. 사운드 파일을로드하거나 FileInputStream 및 FileWriter를 사용하려면 어떻게해야합니까? – Coupon22

+0

대답 업데이트를 확인하십시오 –

+0

* "하지만 사운드 파일 .. 이클립스 밖에서 작동하지 않습니다"* 그들을 위해'getResource (String)'을 사용하십시오. getResourceAsStream (String)의 문제는, 위치를 변경할 수없는 입력 스트림을 돌려주는 것입니다. –

1

사용하십시오. 이 방법은 doesn't return immediately입니다. 다음

return new ImageIcon(getClass().getClassLoader().getResources(img)).getImage();