2016-12-29 9 views
0

그래서 jar 파일에서 프로그램을 실행할 때 파일을로드하는 데 문제가 있습니다. 나는 이것과 매우 비슷한 질문이 있다는 것을 알고 있지만, 나를 위해 일하는 것이 없거나 내가 필요한 것을 할 수 없다..jar에서 파일을로드 할 때 URI가 계층 적이 지 않음

initSource = new File(getClass().getResource("/resources/levels").toURI());

나는 아무 문제가 없다

Exception in thread "main" java.lang.IllegalArgumentException: URI is not hierarchical 
     at java.io.File.<init>(Unknown Source) 
     at bbsource.BouncyBallV5.loadLevels(BouncyBallV5.java:370) 
     at bbsource.BouncyBallV5.<init>(BouncyBallV5.java:243) 
     at BBDriver.main(BBDriver.java:18) 

라인 (370)은 다음과 같다 : 내 항아리에서 폴더에서 개체 파일을로드하고 싶지만 내가 할 때 나는 다음과 같은 오류가 발생합니다 Eclipse에서 실행할 때이 줄이 있지만 jar 파일에서 상황이 다르게 작동한다는 것을 알고 있습니다. 폴더 계층 구조는 다음과 같습니다

  • SRC
    • 자원을
      • 수준
        • tier_one
          • Level1.cbbl
          • Level2.cbbl
          • ,
          • tier_two Level1.cbbl

수준은 나에게 접근을 못하게 디렉토리이며, 잘 모르겠어요 어떻게 작동 시킬지. 나는 InputStream을 사용하는 것과 같은 제안을 보았습니다. 그러나 그것을 사용하는 방법을 모르겠고 여전히 객체를 읽을 수있는 파일로 취급합니다.

도움을 주시면 감사하겠습니다.

답변

3

/resources/levels은 (는) 파일이 아닌 디렉토리입니다. this question

+0

에 대한 답변을 확인하십시오. 그리고 하위 디렉토리에 액세스하기 위해 디렉토리로 사용하고 결국 파일이지만 인덱스 작성을 위해 디렉토리와 같은 구조가 필요합니다. 그리고 나는 이것이 실제로'InputStream'을 어떻게 사용하는지 확신 할 수 없습니다. 'initSource' 도움말을 어떻게 사용하는지에 대한 코드를 작성하겠습니까? – Ryan

+0

'initSource = new File (getClass(). getResource ("/ resources/levels"). getFile())' – AJA

+0

여전히 Eclipse에서 작동하지만 명령 프롬프트에서 jar로 실행할 때 여전히 오류가 발생합니다. 그러나 이번에는 오류가 'NullPointerException'입니다. – Ryan