표시 할 이미지를로드하는 JFrame을 사용하여 게임을 만들고있었습니다. 그런 다음 프로그램을 실행하려고 할 때 항아리에서 이미지를 찾지 못했습니다. 그렇다면 항아리에서 파일을 어떻게 가져 옵니까? /img.png
또는 img.png
또는 심지어 \\img.png
입니까? java에서의 경로가 아직 어떻게 작동하는지 모르겠습니다.Java jar 파일 내에서 이미지를 사용하는 방법
(편집) 알아 냈습니다.
표시 할 이미지를로드하는 JFrame을 사용하여 게임을 만들고있었습니다. 그런 다음 프로그램을 실행하려고 할 때 항아리에서 이미지를 찾지 못했습니다. 그렇다면 항아리에서 파일을 어떻게 가져 옵니까? /img.png
또는 img.png
또는 심지어 \\img.png
입니까? java에서의 경로가 아직 어떻게 작동하는지 모르겠습니다.Java jar 파일 내에서 이미지를 사용하는 방법
(편집) 알아 냈습니다.
/img.png가 정확합니다. 어떻게로드하려고합니까? JAR 파일에 대해 알고있는 클래스 로더를 사용하여 이미지 파일을 가져와야합니다.
하면 JAR 파일을 클래스 패스에있는 가정, 이런 식으로 뭔가를 시도 :
이 방법을 사용해보십시오.
예를 들어public class MyClass {
public static void main(String[] args) {
InputStream is = MyClass.class.getClassLoader().getResourceAsStream("/img.png");
// read in the data stream
}
}
,이
이 항아리가 그때 이미지를 사용했는데이
String file01="tom.txt";
String file02="com/paic/jerry.txt";
InputStream tom=this.getClass().getClassLoader().getResourceAsStream(file01);
InputStream jerry=this.getClass().getClassLoader().getResourceAsStream(file02);
이미지가 jar 파일에 있다면 "/tom.txt"라고 들었 기 때문에 –
생각합니다. jar 파일의 루트에 파일을 넣는 경우 "/"가 필요하지 않습니다. –
Oooh 나는 다른 방향 이었지만. –
처럼 코딩, 클래스 경로에 있는지 확인 jar 파일 구조입니다 상. 그래서 이렇게 될 것입니다 : ImageIcon i = new ImageIcon ("/ img.png"); –
@HarrisonBergeron 아니요, ImageIcon = new ImageIcon (getClass(). getResource ("/ img.png"));'-'ImageIcon'에'String'을 전달하면 그 값이 파일 참조이고, 어느 쪽이 맞지 않는가 – MadProgrammer
@MadProgrammer 그래서 jar 파일에 있다면 그렇게 될 것입니다. –