jar 파일에 이미지 리소스 포함
IntelliJ에서 jar 파일을 출력하면 이미지가 표시되지 않는 문제
Swing을 이용한 GUI 툴을 제작했을 때, IntelliJ상에서 실행했을 경우는 화상 파일이 제대로 표시되지만, jar 파일로서 출력하면(자) 화상 파일 잘 표시할 수 없게 된다고 하는 문제에 직면했다.
구구했는데, 잘 알려진 현상답게, 해결책도 곧 나왔다. 다음은 그 해결책을 자신을 위한 메모로 정리한 것이다.
상황 설명
Java의 GUI 툴킷인 Swing을 연습하기 위해 모래시계 아이콘이 표시될 뿐인 간단한 프로그램을 제작하고 있었다.
이런
아이콘은 hourglass.png 파일이라는 이름으로 src 폴더 바로 아래에 저장했습니다. 또한, 아이콘 파일의 로딩은 다음과 같이 기록되었다.
ImageIcon myIcon = new ImageIcon("hourglass.png");
이 코드를 IntelliJ에서 실행하면 모래 시계 아이콘이 제대로 표시된 프로그램이 실행됩니다.
그러나 jar 파일을 출력하고 터미널에서 프로그램을 실행하면 다음과 같이 아이콘을 표시 할 수 없게됩니다.
해결책
ClassLoader.getResource()를 이용한다.
Java에서는, 파일 등의 자원 정보를 취득하는 처리로서 ClassLoader.getResource()가 준비되어 있다.
앞의 코드로
ImageIcon myIcon = new ImageIcon("hourglass.png");
로 하고 있던 기술을,
ClassLoader cl = this.getClass().getClassLoader();
ImageIcon myIcon = new ImageIcon(cl.getResource("hourglass.png"));
다시 쓰면 jar 파일로 출력 된 후에도 이미지 리소스가 제대로 참조되므로 이미지가 표시됩니다.
했어.
추천 소스
htps : // ゔぃr ゎlk. 하테나아 ry. rg/엔 try/20121013/1350127275
h tp // 히스케. 하테나 bぉg. 코m/엔트리/2016/12/30/101639
Reference
이 문제에 관하여(jar 파일에 이미지 리소스 포함), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hoshi_shiitake/items/b874dca8e37a726906c3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)