2012-07-05 8 views
2

getResourceAsStream 메소드에 문제가 있습니다. 잘못된 디렉토리로 인해 null을 리턴합니다. 문제는 내가 어떻게 정의해야하는지 모른다는 것이다. 내가 뭔가를 null를 돌려외부 파일에 대한 getResourceAsStream 다루기

InputStream in = this.getClass().getResourceAsStream("../dll/" + "MyFile.dll"); 

이있을 때

내 프로젝트 구조는

Project 
    #src 
    #com.package 
     #ExampleClass.java 
    #dll 
    #MyFile.dll 

것 같습니다. 누구든지이 문제를 다루는 방법과 경로를 정의하는 방법을 알고 있습니까? thiscom.package 패키지 ExampleClass 경우

답변

3

, 당신은 CLASSPATH의 루트에 도달하기 위해 두 가지 수준을 갈 필요가 :

this.getClass().getResourceAsStream("../../dll/" + "MyFile.dll"); 

가정 /dll 디렉토리는 당신의 CLASSPATH의 루트에 직접 배치됩니다. /dll/MyFile.dll이 행해져 Yout CLASSPATH에없는

this.getClass().getResourceAsStream("/dll/" + "MyFile.dll"); 

경우 (당신의 JAR 파일을 열고 거기에 있는지 여부를 확인)을 열기 위해 파일 시스템 메커니즘을 사용해야하거나 절대 경로를 사용합니다.

+0

"../../dll/"내가 한 일은 그게 도움이되지 않습니다. Eclipse에서 CLASSPATH를 구성하는 방법은 무엇입니까? –

+0

@MisterS : Eclipse를 사용하지 않지만 체크 아웃 : http://openscada.org/2010/05/31/adding-a-directory-as-class-path-to-eclipse/ 또는 Google "* Eclipse 클래스 경로 디렉토리 추가 * " –

+1

프로젝트 속성 열기, java 빌드 경로 검색. 소스 탭에 dll 폴더를 추가하고 적절한 출력 폴더 경로를 작성하십시오. 출력 폴더로 dll을 입력하면 getResourceAsStream ("/ dll ......")을 사용하십시오. – Deniz

관련 문제