2017-01-16 3 views
0

현재 intellij에 Java/kotlin 프로젝트를 코딩 중이며 XML 및 기타 텍스트 기반 파일을 가져 오기 위해 파일 판독기를 사용해야합니다.어디에서든지 참조 프로젝트 디렉토리

필요한 모든 파일을 저장하는 files라는 디렉토리를 만들었습니다.

내가 가진 문제는 각 메서드를 호출 할 때 해당 메서드가 호출되는 디렉터리에 따라 파일 디렉터리를 참조하는 새로운 경로를 만들어야한다는 것입니다.

System.getDirectory처럼 ("파일"또는 "루트") 등

나는 현재 System.getProperty를 사용하고 뭔가를 프로젝트 루트 디렉토리 나 파일 디렉토리를 참조하고는 모든 곳에서 작동 한 방법이 있나요 ("user.dir")하지만이 경로는 호출되는 위치에 주관적이며 따라서 내가 찾는 경로가 아닙니다.

+1

* 어떤 파일에서 호출되는지에 따라 다르므로 * : 아니요. 상대 경로는 ** current ** 디렉토리, 즉'java'가 실행되는 디렉토리에 상대적입니다. IDE에서 실행하는 경우, 이것은 실행 구성에서 다른 것을 명시 적으로 지정하지 않는 한 일반적으로 프로젝트 루트 디렉토리입니다. –

+0

'나는 파일이라는 디렉토리를 만들었습니다. ': 정확히 어디에서 그 디렉토리를 만들었습니까? 어떻게 프로젝트를 시작합니까? – t0r0X

답변

1

파일이 응용 프로그램과 함께 제공되는 경우 자원을 사용하고 클래스 경로에서로드하십시오. 그렇지 않으면 발신자가이 파일의 위치를 ​​지정할 수 있도록 구성 지원 또는 명령 줄 매개 변수를 앱에 추가하는 것이 좋습니다. '현재 디렉토리'를 알아내는 것은 오류가 발생하기 쉽고 환경에 영향을받습니다 (귀하의 경우, Intellij의 'Run Configuration'에서 일반적으로 maven 프로젝트에서 $ MODULE_DIR $으로 지정하는 디렉토리).