2014-06-17 2 views
0

Java 프로젝트에서 나는 한순간에 외부 파일을 참조했다. 이 파일은 resources이라는 폴더에 보관됩니다. 코드에서 호출입니다 :이 오류없이 실행이클립스에서 볼 수 있지만 jar에서는 볼 수없는 리소스

이클립스 (3.7.2)에서 실행
DHKeyReader d = new DHKeyReader("resources/filename") 

. 그러나 항아리로 내 보내면 IOException으로 실패합니다.

코드를 수정하는 것을 주저합니다. 코드가 작동한다는 구실하에 나에게 주어 졌으므로 변경 될 수 있도록 자신을 숙지해야했습니다. 그러나 여전히 오류가있을 수 있습니다.

제 질문은 : 어떻게하면 jar 파일 내에서 (.jar의 루트에있는) 폴더를 Eclipse에서 실행하는 것처럼 보이게 할 수 있습니까?

+0

나는 확실하지 그러나 아마 [이] (http://stackoverflow.com/questions/17729794/exporting-a-java-project-with-external-dependencies-to-a-jar-using-eclipse) 또는 [이] (http://stackoverflow.com/questions/14694512/how-to-export-an-eclipse-project-with-external-jar-dependencies) 도움이 될 수 있습니다? – chancea

+0

"정상"파일 경로가 제대로 기억되는 경우 JAR에서 기대하는 방식으로 작동하지 않습니다. 나는 정상적인 관용구가'getClass(). 같이 getResourceAsStream ("RELATIVE_PATH") '입니다 * 생각 *,하지만 난 100 % 확실하지 않다 ... – awksp

답변

0

런타임시 클래스 로더가 자원을 찾을 수 없기 때문입니다. 그것의 항상 더 나은 사용하기 : YourClass.class.getResourceAsStream (파일 이름), 당신은 YourClass의 자원을 사용하는 경우. 이렇게하면 클래스 로더가 자원을 검색합니다.

관련 문제