자바 프로젝트 파일 가 져 오기 경로 요약

java            ,       。

1、java.lang.System.getProperty(String key)
System.getProperty("user.dir")                   。
![      ](http://img.blog.csdn.net/20160322141415562)

예 를 들 어 위의 그림 에서 항목 의 루트 디 렉 터 리 를 가 져 옵 니 다: C: \ Users \ 관리자 \ \ 데스크 톱 \ 사전;이 방법 을 사용 하면 프로젝트 를 어디 에 두 든 현재 루트 디 렉 터 리 를 가 져 왔 습 니 다.현재 항목 의 다른 속성 을 가 져 올 필요 가 있 습 니 다. 예 를 들 어 jdk 버 전, 시스템 버 전 실행 등 입 니 다. System. out. println (System. getProperties () 을 이용 하여 모든 속성 을 출력 하고 필요 한 것 이 무엇 인지 확인 하 십시오.따라서 위의 그림 에 있 는 images 파일 에 있 는 파일 을 가 져 오 려 면 System. getProperty (user. dir) + "\ \ images \ \ \ user. jpg") 를 통 해 파일 경 로 를 가 져 올 수 있 습 니 다.
2、java.io.File.File(String pathname)

 1.    

        File directory = new File("");//        
        System.out.println(directory.getCanonicalFile());//     File
        System.out.println(directory.getCanonicalPath());//         ,     String
        System.out.println(directory.getAbsoluteFile());//     File
        System.out.println(directory.getAbsolutePath());//      ,     String

  :

        C:\Users\Administrator\Desktop\Dictionary
        C:\Users\Administrator\Desktop\Dictionary
        C:\Users\Administrator\Desktop\Dictionary
        C:\Users\Administrator\Desktop\Dictionary

2、   
        File directory = new File(".");//        
        System.out.println(directory.getCanonicalFile());//     File
        System.out.println(directory.getCanonicalPath());//         ,     String
        System.out.println(directory.getAbsoluteFile());//     File
        System.out.println(directory.getAbsolutePath());//      ,     String

  :

        C:\Users\Administrator\Desktop\Dictionary
        C:\Users\Administrator\Desktop\Dictionary
        C:\Users\Administrator\Desktop\Dictionary\.
        C:\Users\Administrator\Desktop\Dictionary\.

3、   

        File directory = new File("..");//        
        System.out.println(directory.getCanonicalFile());//     File
        System.out.println(directory.getCanonicalPath());//         ,     String
        System.out.println(directory.getAbsoluteFile());//     File
        System.out.println(directory.getAbsolutePath());//      ,     String

  :

        C:\Users\Administrator\Desktop
        C:\Users\Administrator\Desktop
        C:\Users\Administrator\Desktop\Dictionary\..
        C:\Users\Administrator\Desktop\Dictionary\..

getCanonicalPath () 함수 에 대해 서 는 "." 는 현재 폴 더 를 표시 하고 "..." 는 현재 폴 더 의 이전 폴 더 가 getAbsolutePath () 함수 에 대해 서 는 상관 하지 않 는 다 는 것 을 의미 합 니 다. ","... "현재 경 로 를 되 돌려 주 고 new File () 에서 설정 한 경 로 를 추가 합 니 다.
String java. io. File. getPath () 방법:
        File directory = new File("");
        System.out.println(directory.getPath()); //          
        File directory = new File(".");
        System.out.println(directory.getPath()); //          
        File directory = new File("..");
        System.out.println(directory.getPath()); //          
        File directory = new File("images\user.jpg");
        System.out.println(directory.getPath()); //          

    :

        ( )
        .
        ..
        images\user.jpg

무엇 을 주 는 지, File. getPath () 가 무엇 을 출력 하 는 지 설명 합 니 다.
3 classpath 를 기반 으로 자원 을 얻 는 방법 은 다음 과 같은 세 가지 가 있 습 니 다.
URL url = this.getClass().getResource("resource_name");
   URL url = this.getClass().getClassLoader().getResource("resource_name");
   URL url = Thread.currentThread().getContextClassLoader().getResource("resource_name");

  :this   main     ,main       :
URL url = Test.class.getClassLoader().getClass().getResource("/images/user.jpg"); 
URL url = Test.class.getClassLoader().getClass().getClassLoader().getResource("/images/user.jpg");
     “Cannot use this in a static context”。

첫 번 째 는 Class 클래스 인 스 턴 스 를 통 해 getResource 방법 이 고, 뒤의 두 가 지 는 모두 ClassLoader 클래스 인 스 턴 스 의 getResource 방법 입 니 다.Class. getResource () 도 ClassLoader 의 getResource 방법 에 의뢰 하여 이 루어 집 니 다. 따라서 먼저 ClassLoader 의 getResource 방법 을 말 합 니 다.
(1) ClassLoader 의 getResource 방법 매개 변 수 는 "/" 로 시작 할 수 없 으 며, 루트 디 렉 터 리 부터 찾 아야 합 니 다. 이 루트 디 렉 터 리 는 classpath 의 디 렉 터 리 와 인 용 된 jar 입 니 다. 예 를 들 어 eclipse 의 기본 값 은 모든 프로젝트 에서 자바 류 가 실 행 될 때의 classpath 를: 프로젝트 루트 디 렉 터 리 / bin 디 렉 터 리 및 프로젝트 에서 인 용 된 모든 jar 패키지 로 설정 합 니 다. 컴 파일 할 때,src 디 렉 터 리 구 조 를 bin 디 렉 터 리 에 복사 하고 자바 류 를 class 파일 로 컴 파일 한 후 다른 파일 과 연결 하여 src 중원 디 렉 터 리 구 조 를 bin 디 렉 터 리 에 복사 합 니 다.어떤 공장 의 classpath 를 다음 과 같이 가정 합 니 다 (두 개): / bin log4j - 1.2.16. jar 중 log4j - 1.2.16. jar 에 디 렉 터 리 구조 org \ apache \ log4j \ (패키지 org. apache. log4j) 와 대응 하 는 디 렉 터 리 아래 test. txt 파일 을 찾 으 려 면 아래 방법 ClassLoader. getResource ("test. txt") 를 사용 하 십시오.여기 서 ClassLoader. getResource 방법의 입 참 은 루트 디 렉 터 리 부터 찾 아야 합 니 다. 이 루트 디 렉 터 리 는 classpath 의 / bin 입 니 다.bin / level 1 / level 2 / ll. txt 파일 을 찾 으 려 면 ClassLoader. getResource ("level 1 / level 2 / ll. txt") 를 사용 해 야 합 니 다. / /루트 디 렉 터 리 (/ bin) 를 기반 으로 해 야 하 며 디 렉 터 리 구조 도 맞 춰 야 하 며 / 시작 할 수 없습니다.
(2) Class. getResource () 는 약간 다르다.
(a) 상대 경 로 를 통 해 현재 인 스 턴 스 의 Class 파일 이 있 는 가방 을 찾 을 수 있 습 니 다.
(b) ClassLoader. getResource () 와 마찬가지 로 루트 디 렉 터 리 (classpath) 부터 찾 을 수 있 습 니 다.
       Class.getResource()        "/"   ,
         ((a)    )
  ,       /  ,    ClassLoader.getResource()

좋은 웹페이지 즐겨찾기