자바 자원 획득 경로

4627 단어 자바자원.
ClassLoader  불 러 오 는 클래스 경로 에서 자원 을 얻 을 수 있 는 두 가지 방법 을 제공 합 니 다.
 
 
       

  
  
  
  
  1. public URL getResource  (String name); 
  2.  
  3.        public InputStream getResourceAsStream  (String name); 

 
        이 name 은 자원 의 클래스 경로 입 니 다."/"루트 와 상대 적 으로 위치 합 니 다.getResource 는 URL 대상 을 통 해 자원 을 찾 을 수 있 으 며,getResource AsStream 은 이 자원 의 입력 흐름 을 참조 하 는 보증 프로그램 을 통 해 정확 한 위치 에서 데 이 터 를 추출 할 수 있 습 니 다.
        그러나 진정 으로 사용 하 는 것 은 ClassLoader 의 이 두 가지 방법 이 아니 라 Class 의 getResource 와 getResource AsStream 방법 입 니 다.Class 대상 은 클래스 에서 얻 을 수 있 기 때 문 입 니 다.클 라 스 대상 의 이 두 가지 방법 은'의뢰'(delegate)가 클 라 스 로 더 를 불 러 오 는 것 이기 때문에 클 라 스 대상 의 이 두 가지 방법 만 사용 하면 된다.
 
        따라서 this.getClass().getResource AsStream(String name)을 직접 호출 합 니 다. ;스 트림 가 져 오기,정적 화 방법 에 서 는 ClassLoader.getSystem ResourceAsStream(String name)을 사용 합 니 다. ; 。
 
       다음은 classpath 와 현재 클래스 의 절대 경 로 를 얻 는 방법 입 니 다.당신 이 필요 로 하 는 자원 의 절대적 인 경 로 를 얻 기 위해 서 는 그 중의 몇 가지 방법 을 사용 해 야 할 수도 있 습 니 다.
 
 

  
  
  
  
  1. 1.this.getClass().getResource("") 

 현재 클래스 클 라 스 파일 의 URI 디 렉 터 리 를 가 져 왔 습 니 다.자기 포함 안 돼!
 파일:/D:/workspace/jbpmtest 3/bin/com/test/
 
 

  
  
  
  
  1. 2.this.getClass().getResource("/") 

 현재 classpath 의 절대 URI 경 로 를 얻 었 습 니 다.
 file:/D:/workspace/jbpmtest 3/bin/
 
 

  
  
  
  
  1. 3.this.getClass()  .getClassLoader().getResource("") 

 현재 ClassPath 의 절대 URI 경 로 를 얻 었 습 니 다.
 file:/D:/workspace/jbpmtest 3/bin/
 
 

  
  
  
  
  1. 4.ClassLoader.getSystemResource("") 

 현재 ClassPath 의 절대 URI 경 로 를 얻 었 습 니 다.
 file:/D:/workspace/jbpmtest 3/bin/
 
 

  
  
  
  
  1. 5.Thread.currentThread().getContextClassLoader ().getResource("") 

 현재 ClassPath 의 절대 URI 경 로 를 얻 었 습 니 다.
 file:/D:/workspace/jbpmtest 3/bin/
 
 

  
  
  
  
  1. 6.ServletActionContext.getServletContext().getRealPath(“/”) 

웹 프로그램 에서 웹 프로그램의 루트 디 렉 터 리 를 얻 는 절대 경로 입 니 다.이렇게 하면 웹 프로그램 루트 디 렉 터 리 에 대한 경 로 를 제공 하면 포 지 셔 닝 자원 의 절대적 인 경 로 를 구축 할 수 있 습 니 다.
 예 를 들 어:file:/D:/workspace/.metadata/.plugins/org.eclipse.wt.server.core/tmp0/wtpwebapps/WebProject
 
 
 주의 점:
 
 1.System.getProperty(user.dir)에 비해 현재 사용자 디 렉 터 리 의 상대 경 로 를 사용 하지 마 십시오.
 
 2.URI 형식의 절대 경로 자원 을 사용 합 니 다.URI,URL,File 대상 으로 쉽게 전환 할 수 있 습 니 다.
 
 3.가능 한 한 상대 적 인 classpath 의 상대 경 로 를 사용 합 니 다.절대 경 로 를 사용 하지 마 세 요.위의 ClassLoaderUtil 류 의 Public static URL getExtendeResource(String relativePath)방법 을 사용 하면 classpath 의 상대 경로 에 비해 모든 위 치 를 찾 을 수 있 는 자원 을 사용 할 수 있 습 니 다.
 
 4.하 드 코딩 의 절대 경 로 를 사용 하지 마 세 요.현재 classpath 의 절대 경 로 를 ClassLoader 류 의 getResource(")방법 으로 얻 을 수 있 기 때 문 입 니 다.만약 당신 이 절대적 인 경 로 를 지정 해 야 한다 면,설정 파일 을 사용 하 는 것 도 하 드 인 코딩 보다 훨씬 좋 습 니 다!
 
 CLASSPATH 이외 의 경 로 를 획득 하 는 방법:
       URL base = this.getClass().getResource(""); //이 클래스 가 있 는 위 치 를 먼저 가 져 옵 니 다.예 를 들 어/home/popey/testjava/build/classes/net/
       String path = new File(base.getFile(), ".../.../.../"+name).getCanonicalPath();//홈/popey/testjava/name

좋은 웹페이지 즐겨찾기