원하는 자원이 classpath에 있고 jar, war 또는 distribution으로 패키지되어 있으면 자원을 가져 와서 검색 할 수 있습니다.
실제로이 규칙은 루트의 역할을하는 'src/resources'라는 디렉토리를 가지고 있습니다. 사용하는 리소스의 양과 범위에 따라 리소스의 조직 및 상태를 관리 가능한 상태로 유지하기 위해 하위 디렉터리 계층 구조를 추가 할 수도 있습니다.
또한 리소스는 파일, 이미지, 사운드, 텍스트, xml, 바이너리 등 어떠한 제한도 될 수 없습니다. .
마지막으로 호출하면 객체 방법을 사용하는 경우 다음과 같이 표시됩니다 getClass() 같이 getResourceAsStream를 ("자원 /에서는 MyResource") - 또는 - 모두 getClass()의 getResource를 ("자원 /에서는 MyResource") 가 달려있다. 코드의 해당 지점에 스트림 또는 URI 만 있으면됩니다. 일반적으로 다른 곳의 자원 처리와 스트림 양식을 인라인으로 처리 할 때 URI를 사용합니다. .
는 결국이 해결됩니다
새 개체() getClass() ...
여기 염두에두고 생각입니다 : 클래스 메소드에 대한
, 당신은 더 많은 뭔가를 할 필요가있을 것이다 을 클래스 로더에 보내고 클래스 경로에서 자원을 가져옵니다.
좋아, 그래서이 시도는,이 코드는 잘 작동 : [코드] URL imgOn = cldr.getResource ("자원을 \\에. png "); URL imgOff = cldr.getResource ("resources \\ off.png"); ImageIcon 켜기; ImageIcon 꺼짐; 공공 무효 실행() { 에서 System.out.println ("URL :"+ imgOn); = 새 ImageIcon (imgOn); 해제 = 새 ImageIcon (imgOff); ... dist에서 jar 파일을 실행할 때 URL을 반환합니다. null ..... – RenegadeAndy
jar 파일의 압축을 풀고 jar 파일에 자원 파일이 포함되었는지 확인합니다. –