2010-06-21 5 views
1

netbeans 프로젝트를 배포하려하지만 jar 파일이 생성되고 dist 폴더의 내용은 프로젝트에 포함 된 일부 이미지 파일에 따라 달라집니다. dist 폴더가 아니기 때문에 필요한 모든 것을 포함하여 배포 가능한 형식으로 프로젝트를 내보낼 수 있도록 일을 만드는 방법을 연습 할 수 없습니다.Netbeans가 모든 이미지 등을 포함하는 dist jar 파일을 포함합니다.

누군가가 필요한 모든 것을 포함하고있는 프로젝트/dist 폴더를 사용하지 않고 Netbeans 내에서 실행되는 프로젝트를 어떻게 내보낼 수 있습니까?

건배

앤디이를 달성하기

답변

1

한 가지 방법은 프로젝트의 src 디렉토리에 (f.i. "자원") 폴더를 추가하는 것입니다. 그런 다음 이미지를 그 dir에 복사하십시오. 이제 프로젝트를 빌드 할 때 이미지가 포함되어야합니다 (올바르게 기억한다면). 파일에 액세스하는 것은 "getResourceAsStream"을 사용하여 수행 할 수 있습니다 ...

+0

좋아, 그래서이 시도는,이 코드는 잘 작동 : [코드] 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

+0

jar 파일의 압축을 풀고 jar 파일에 자원 파일이 포함되었는지 확인합니다. –

1

원하는 자원이 classpath에 있고 jar, war 또는 distribution으로 패키지되어 있으면 자원을 가져 와서 검색 할 수 있습니다.

실제로이 규칙은 루트의 역할을하는 'src/resources'라는 디렉토리를 가지고 있습니다. 사용하는 리소스의 양과 범위에 따라 리소스의 조직 및 상태를 관리 가능한 상태로 유지하기 위해 하위 디렉터리 계층 구조를 추가 할 수도 있습니다.

또한 리소스는 파일, 이미지, 사운드, 텍스트, xml, 바이너리 등 어떠한 제한도 될 수 없습니다. .

마지막으로 호출하면 객체 방법을 사용하는 경우 다음과 같이 표시됩니다 getClass() 같이 getResourceAsStream를 ("자원 /에서는 MyResource") - 또는 - 모두 getClass()의 getResource를 ("자원 /에서는 MyResource") 가 달려있다. 코드의 해당 지점에 스트림 또는 URI 만 있으면됩니다. 일반적으로 다른 곳의 자원 처리와 스트림 양식을 인라인으로 처리 할 때 URI를 사용합니다. .

는 결국이 해결됩니다

새 개체() getClass() ...

여기 염두에두고 생각입니다 : 클래스 메소드에 대한

, 당신은 더 많은 뭔가를 할 필요가있을 것이다 을 클래스 로더에 보내고 클래스 경로에서 자원을 가져옵니다.

0

당신은 이미지를 동일한 방식으로 추가 할 수 있습니다 넷빈즈에서 실행할 때

final Image image0 = Toolkit.getDefaultToolkit().getImage(getClass().getResource("images/1.png")); 
관련 문제