상대 경로 얻기
참고: 상대 경로(즉, 당시에 누구와 관련이 있는지 지정하지 않음)는 다음과 같은 방법으로 얻을 수 있습니다(일반 Java 프로젝트인지 웹 프로젝트인지).
String 상대적Path=System.getProperty("user.dir");
위의 상대 경로에서 Java 프로젝트의 파일은 프로젝트의 루트 디렉터리를 기준으로 합니다.
웹 프로젝트의 파일 경로는 웹 서버에 따라 다릅니다(Tomcat은 Tomcat 설치 디렉터리bin에 상대적입니다).
두 번째 클래스 로딩 디렉터리 획득(즉, 실행 시 특정 클래스의 로딩 디렉터리 획득)
1.1) 일반적인 방법 1 (일반 Java 프로젝트이든 웹 프로젝트이든 먼저 패키지 경로를 볼 수 있는 1단계 디렉터리를 찾습니다.)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(test.txt 파일의 경로는 프로젝트명srctest.txt 이며, TestAction 클래스가 위치한 패키지의 1단계 디렉터리는 src 디렉터리 아래에 있습니다)
위 수식에서 TestAction과 test.txt를 해당 클래스 이름과 파일 이름으로 바꾸면 됩니다.
1.2) 일반적인 방법 2(이 방법은 '/'로 시작해야 한다는 점을 제외하면 1.1의 방법과 유사합니다.)
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(test.txt 파일의 경로는 프로젝트명srctest.txt 이고, Test1 클래스가 위치한 패키지의 1단계 디렉터리는 src 디렉터리 아래에 있습니다)
세 가지 웹 프로젝트의 루트 디렉터리 얻기(릴리스 이후)
1 서블릿에서 시작하기
서블릿을 생성하고 init 메소드에 다음 명령문을 작성할 수 있습니다.
ServletContext s1=this.getServletContext();
문자열 임시 = s1.getRealPath("/") (키)
결과는 다음과 같습니다: D:ToolsTomcat-6.0webapps 02_ext (002_ext는 프로젝트 이름입니다)
s1.getRealPath("")가 호출되면 출력은 D:ToolsTomcat-6.0webapps 02_ext("" 하나 적음)입니다.
2 httpServletRequest에서 시작
문자열 cp11111=request.getSession().getServletContext().getRealPath("/");
결과는 다음과 같습니다: D:ToolsTomcat-6.0webapps 02_ext
네 번째 클래스 경로 얻기(Eclipse에서 src 또는 클래스 디렉터리에 대한 경로 얻기)
방법 1 Thread.currentThread().getContextClassLoader().getResource("").getPath()
예: 문자열 t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
출력:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
방법 2 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse는 src의 특정 패키지에 있는 클래스이며 아래와 동일함)
예:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
출력: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
또한 특정 패키지에 파일을 넣으려면 다음과 같은 방법으로 파일을 얻을 수 있습니다. (먼저 패키지의 마지막 수준 디렉터리를 찾습니다.)
예: String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
출력: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse는 src 디렉터리에 있는 jdom 패키지의 클래스입니다.)