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

좋은 웹페이지 즐겨찾기