2014-09-17 4 views
0

내가 아래에 내 리눅스 시스템에 등록 디렉토리가 :지정 FileInputStream에 상대 경로

/home/webserver/tomcat6/properties 

그 안에 내가 가진 :

/home/webserver/tomcat6/webapps/myapp/WEB-INF/classes/myServlet.class 
:

js.db.properties 
js.ldap.properties 

서블릿은 이러한 특성 파일을 호출하면 아래

속성 파일을 가져 오기 위해 4 개의 디렉토리를 찾으려고합니다.

FileInputStream ldapfis = new FileInputStream("../../../../properties/js.ldap.properties"); 

나는 점점 오전 :

Encountered following error: java.io.FileNotFoundException: ../../../../properties/js.ldap.properties (No such file or directory) 

사람이이 작업을 수행하는 방법을 알고 있나요?

답변

1

ls foo을 입력하면 ls 명령을 실행하는 실행 가능 또는 동적 라이브러리와 동일한 디렉토리에서 'foo'파일을 검색하지 않습니다. 현재 디렉토리, 즉 ls 명령을 실행 한 디렉토리에서 검색합니다. Java에서도 마찬가지입니다.

new FileInputStream("../../../../properties/js.ldap.properties")은 톰캣을 시작하는 데 사용 된 java 명령이 실행 된 디렉토리에서 시작하여 파일을 검색합니다.

이 코드 줄을 포함하는 클래스의 위치는 완전히 관련이 없습니다. BTW, 대개의 경우 .class 파일은 jar 또는 war 파일 또는 둘 다에 있습니다.