0
jar 파일 내부에서 이미지를로드하고 싶습니다.jar 루트에서 이미지가로드되지 않습니다.
많은 페이지가 내가 사용중인 정확한 코드를 사용한다고 말합니다. 어떤 사람들은 getClass()
을 사용한다고하지만, 내 메인 메소드에서 코드를 실행하고 있으며 클래스는 정적이 아닙니다.
현재 주 클래스의 main 메서드에 다음 코드가 있습니다.
try {
ImageIcon icon = new ImageIcon(BlockWorld.class.getResource("icon.png")); // line 46
window.setIconImage(icon.getImage());
} catch (Exception e) {
e.printStackTrace();
}
나는 icon.png
이 항아리의 루트에 있다는 사실을 알고있다. 알파가없는 128 x 128 픽셀입니다.
모든 것이 잘 컴파일됩니다. 항아리를 실행할 때, 그것은 다음을 내 보냅니다.
java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(Unknown Source)
at com.Tgwizman.BlockWorld.BlockWorld.main(BlockWorld.java:46)
누구에게 의견이 있습니까?
은 또한,'getResource' 호출은 클래스 로더에 안? 'BlockWorld.class.getClassLoader(). getResource ("/ icon.png")와 마찬가지로. – coladict
이 경우에는 해당되지 않습니다. 이제 코드가 작동합니다. 나는 왜 자바가 기본 디렉토리로 항아리 루트를 가지고 있는지 모르겠다. 이 사실을 알기 위해 영원히 노력했습니다. 마침내 여기에 질문을 올리면 http://stackoverflow.com/questions/2593154/get-a-resource-using-getresource에서 다른 질문에 대한 답변의 일부로이 질문의 대답을 발견했습니다. – Tgwizman
이런 종류의 작업을 처리 할 때는 리소스에 올바른 경로를 제공해야합니다. 또한 위에서 설명한 것처럼 클래스 로더를 호출 할 필요가 없습니다. – Aris