지정된 클래스 파일의 디렉토리 경로 얻기 : 분명히이클래스 자체에 대한의 .class 파일이 같은 디렉토리에서 일부 구성 파일을 읽으려고 내가 코드에 직면했다
File[] configFiles = new File(
this.getClass().getResource(".").getPath()).listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".xml");
}
});
을 (아마도, 수지 내부의 코드를 실행하는 경우) 어떤 경우에 작동하지만, 나를 위해, Tomcat을 실행, 단순히, NPE와 함께 실패 getClass().getResource(".")
반환 null
때문이다.
동료는 ".xml"구성 파일 목록을 포함하는 다른 구성 파일을 만들 것을 제안했습니다. 실제로이 파일은 매우 정적으로 유지되므로 실제로 작동합니다. 자바. 주어진을 .class 파일이있는 디렉토리의 경로를 얻기 위해, 보편적으로 작동 일부 좋은 방법, 가있는 경우
는 여전히 궁금하네요?
new File(this.getClass().getResource("MyClass.class").getPath()).getParent()
을 ... 그러나 이것은 단지/깨끗한 방법입니다 : 나는 당신이 이런 식으로의 .class 파일 자체의 경로에서 그것을 얻을 수있을 것 같아요?
편집 : 명확히하기 위해, 우리는이 MyClass.class 항상 디스크에의 .class 파일에서 읽을 수있는 방법으로 배포 된 응용 프로그램에서 사용하고, 자원에있을 것입니다을 알고 가정 같은 디렉토리.
이 관련 질문을 찾았 http://stackoverflow.com/questions/778187/getting-directory-path-to-class-file-containing-main이 허용 대답은 내가 무엇을 제안 기본적으로 사용 [의 getResource ("MyClass.class"). getPath()] ... 그러나 이것이 유일한 방법인지 아니면 최선의 방법인지 직접 대답하지 않습니다. – Jonik