2013-03-15 2 views
0

표시 할 이미지를로드하는 JFrame을 사용하여 게임을 만들고있었습니다. 그런 다음 프로그램을 실행하려고 할 때 항아리에서 이미지를 찾지 못했습니다. 그렇다면 항아리에서 파일을 어떻게 가져 옵니까? /img.png 또는 img.png 또는 심지어 \\img.png입니까? java에서의 경로가 아직 어떻게 작동하는지 모르겠습니다.Java jar 파일 내에서 이미지를 사용하는 방법

(편집) 알아 냈습니다.

답변

0

/img.png가 정확합니다. 어떻게로드하려고합니까? JAR 파일에 대해 알고있는 클래스 로더를 사용하여 이미지 파일을 가져와야합니다.

http://docs.oracle.com/javase/6/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)

하면 JAR 파일을 클래스 패스에있는 가정, 이런 식으로 뭔가를 시도 :

이 방법을 사용해보십시오.

예를 들어
public class MyClass { 
    public static void main(String[] args) { 
     InputStream is = MyClass.class.getClassLoader().getResourceAsStream("/img.png"); 
     // read in the data stream 
    } 
} 
+0

처럼 코딩, 클래스 경로에 있는지 확인 jar 파일 구조입니다 상. 그래서 이렇게 될 것입니다 : ImageIcon i = new ImageIcon ("/ img.png"); –

+1

@HarrisonBergeron 아니요, ImageIcon = new ImageIcon (getClass(). getResource ("/ img.png"));'-'ImageIcon'에'String'을 전달하면 그 값이 파일 참조이고, 어느 쪽이 맞지 않는가 – MadProgrammer

+0

@MadProgrammer 그래서 jar 파일에 있다면 그렇게 될 것입니다. –

0

,이 Jar File Stucture

이 항아리가 그때 이미지를 사용했는데이

String file01="tom.txt"; 
String file02="com/paic/jerry.txt"; 
InputStream tom=this.getClass().getClassLoader().getResourceAsStream(file01); 
InputStream jerry=this.getClass().getClassLoader().getResourceAsStream(file02); 
+0

이미지가 jar 파일에 있다면 "/tom.txt"라고 들었 기 때문에 –

+0

생각합니다. jar 파일의 루트에 파일을 넣는 경우 "/"가 필요하지 않습니다. –

+0

Oooh 나는 다른 방향 이었지만. –

관련 문제