2013-11-28 10 views
1

플랫폼 작성기의 일부로 이미지를로드하려고하는데 이미지를 찾기 위해 솔기를자를 수 없으므로 클래스이미지를로드 할 수 없습니다 - 이미지를 찾을 수 없습니다.

과 같은 기본 패키지에 넣습니다.
public BufferedImage loadImage() { 
    try { 
    BufferedImage img = ImageIO.read(new File("level.jpg")); 
    System.out.println("Level Found!"); 
    return img; 

    } catch (IOException e) { 
    System.out.println("Level Missing!"); 
    return null; 
    } 
} 
+1

여기에 Stacktrace를 붙여 넣을 수 있습니까 ?? – Prasad

+0

파일이 클래스 경로에 올바르게 배포 되었습니까? –

+1

절대 경로 제공 시도 .... –

답변

3

new File("level.jpg")과 같은 파일을 참조하는 경우 해당 파일을 현재 디렉토리에 저장해야합니다. 대부분의 경우 기본 패키지 디렉토리가 아닙니다. 이렇게 될 것 이클립스에게 당신의 전형적인 디렉토리 구조를 사용하여 예를 들어

:

+ MyProject 
    | 
    + src 
    | 
    + org/mypackage1 
    + org/mypackage2 

+ MyProject 
    | 
    + src 
    | | 
    | + org/mypackage1 
    | + org/mypackage2 
    | 
    + level.jpg 
+0

패키지 구조에 대해 루트 – Keerthivasan

+0

+1 대신 src 디렉토리를 의미합니다. 어떻게 그랬습니까? – Keerthivasan

+0

나는 프로젝트 루트를 의미합니다. Src 디렉토리가 기본 패키지입니다. 답변 바로 아래에있는'편집 '버튼을 클릭하면 "소스 코드"를 볼 수 있습니다. 이러한 아스키 그래픽을 그리는 것은 매우 쉽습니다. :-) –

0
처럼 프로젝트 루트 디렉토리에 level.jpg을 넣어 가지고 작업하는 new File("level.jpg")을 얻기 위해

클래스 로더의 get 리소스 메소드 사용

+2

당신의 제안은 좋은 제안입니다. 원래의 포스터의 이점에 대해 좀 더 자세하게 설명하면 조금 더 확장 할 수 있습니까? –

+1

@HovercraftFullOfEels 좋은 지적입니다. 나는 똑같은 말을하는 덧글을 덧붙였지만이 전체 답보다 더 자세하다! –