2012-12-18 4 views
3

이것은 아마도 IDE의 특성 일뿐입니다. 하지만 이클립스에서는 클래스와 리소스를 좀 더 체계화하는 데 관심이 있습니다.Eclipse 참조 Java 자원

내가 알기에 기본 "src"디렉토리는 모든 리소스를 포기할 장소입니다. 그리고 내 자원이에있는 경우 I는 다음과 같이이를 참조 할 수 있습니다 : I합니다 (SRC/디렉토리 내에) 단지 아이콘에 대한 디렉토리를 작성하는 경우

ImageIcon icon = new ImageIcon("src/icon-16x16.png"); 

, 그때 나는 단순히 같은 경로를 변경 :

ImageIcon icon = new ImageIcon("src/icons/icon-16x16.png"); 

이제 src/디렉토리 외부에서 내 리소스를위한 별도의 디렉토리를 만들고 싶습니다. 여기에 내가 정리 한 내용입니다

prj.HelloWorld (project) 
-> src/ ......... 
-> src/images/ ........ 
-> src/ (default package) ......classes.java 

:

여기에 내 옛날 구조의 지금

prj.HelloWorld (project) 
-> classes/ ......... 
-> images/ ........ 
-> media/........ 

, 나는 전용 프로젝트를 사용에 관심이 있어요 (prj.Resources) 모든 프로젝트에서 공통적 인 리소스를 공유 할 수 있습니다.

prj.Resources (project) 
-> global_classes/ ......... 
-> global_images/ ........ 
-> global_media/........ 

prj.HelloWorld (project) 
-> classes/ ......... 
-> images/ ........ 
-> media/........ 

그리고 빌드 경로는 Java 내부 prj.Resources 프로젝트 탭에 추가하여 prj.HelloWorld을 수정합니다.

(prj.HelloWorld> 특성> Java 빌드 경로> 프로젝트 탭> 추가 ...)

지금까지 있음을했던, 그리고 prj.Resources/global_classes 내부에 클래스/ 성공적이다 감지되고있다.

그러나 global_images 내부의 이미지는 아닙니다.

ImageIcon icon0 = new ImageIcon("global_images/icon.png"); 

다른 프로젝트에있는 리소스를 사용할 수는 있지만 여기서는 확실하지 않은 것이 있습니다.

답변

1

HelloWorld Project의 루트 폴더가 아닌 global_images 폴더에 액세스 할 수 없습니다.

그러나 상대 경로를 해당 프로젝트 리소스 폴더로 표시 할 수 있습니다.

 ImageIcon icon0 = new ImageIcon("../Resources/global_images/icon.png"); 

Path Information

+0

리소스 프로젝트를 다른 프로젝트에 추가 할 때 클래스 (.java) 파일 만 자동으로 참조 할 수 있습니까? Java Build Path로 나의 한계를 알고 싶습니다. – coffeemonitor

+0

.java 파일을 가져 와서 참조 할 수 있습니다. 그것은 자바 기능입니다. 반대로 HTML 또는 이미지 파일과 같은 다른 파일은 제대로 참조해야합니다. '..'는 현재 디렉토리를 보여줍니다. 그것을 일식에서 일식. [경로 정보에 대한이 링크를 따르십시오.] (http://www.uvsc.edu/disted/decourses/dgm/2120/IN/steinja/lessons/06/06_04.html) – Smit

1

당신은 maven 빌드 인프라를 사용할 수 있습니다. 좋은 일식 통합이 있습니다.

Maven이 많이 사용됩니다. Maven은 디렉토리 트리와 같은 최상의 praxises/convention을 사용합니다.

라이브러리 종속성 관리를 수행하며 많은 빌드 도구를 제공합니다.

  • SRC/메인/자바 - 자바 소스
  • SRC/메인/자원 - 웹 응용 프로그램의 루트 디렉토리
  • SRC/테스트/자바 - - JUnit을 인스턴스 이미지 자원
  • SRC/메인/웹 애플리케이션에 대한 테스트 자원
  • 대상 - -
  • SRC/테스트/자원 테스트 빌드 디렉토리를

목 멀티 모듈 프로젝트, 부모 프로젝트, 상속 부모의 종속성 버전 관리와 같은 기능이 있습니다.

0

ImageIcon을 URL에서 구성하는 방법과 컴파일 된 .class 파일의 위치를 ​​기준으로 find a URL을 만드는 방법에 대해 알아보십시오. .java 파일이 아닌 것은 Eclipse가 자동으로 출력 폴더에 복사하므로 이미지도 거기에 있습니다. 이 방법을 사용하면 프로그램이 .jar 파일로 패키징하는지 여부와 Java 빌드 경로가 해당 관계를 올바르게 설명하는 한 서로 다른 프로젝트에 있는지 여부에 관계없이 프로그램이 계속 작업 할 수 있습니다. Class # getResource()에 의해 검색되는 런타임 클래스 경로).