2015-02-05 2 views
0

다음 코드를 Eclipse에서 실행하면 프로그램이 아무 문제없이 컴파일됩니다. 실행 가능한 jar 파일로 프로그램을 내보내려고하면 리소스를 찾을 수 없습니다.내 보낸 jar 파일로 누락 된 리소스에 대한 액세스

public class Test { 

    public static void main(String[] args) { 

     File file = new File(Tester.class.getClassLoader().getResource("res/myFile.txt").getFile()); 

     if(!file.exists()) { System.out.println("File not found."); } 
    } 

} 

폴더 구조 (jar tf test.jar을 실행하여) :

COM/

COM/테스트/

COM/테스트/Tester.class

고해상도/

res/myFile.txt

+0

here 우리에게 당신의 폴더 structire을 보여 주시기 바랍니다 자세한 내용을 참조하십시오. 파일이 병에 담겨 있습니까? – Jens

+0

@Jens 예 파일이 항아리에 포함되어 있습니다. 나는 그것을 두 번 확인하기 위해 열었다. –

+0

그것은'res' 폴더에 있습니까? – Jens

답변

1

jar의 경우 해당 파일이 없습니다.

사용하는 대신 Tester.class.getResourceAsStream("/myFile.txt")과 스트림

UPDATE 작업 : here 또는

+0

이 방법은 작동하지만 위의 방법을 사용하여 파일을 실행 파일로 가져올 수없는 이유를 모르겠습니다. –

+1

할 수 없습니다. 해당 파일이 없습니다. jar 파일 내부에 뭔가가 있고 FileSystem은 파일의 내부 부분에 액세스 할 수 없습니다 (실제로 jar는 zip 아카이브입니다). 그러나 java는 reasource 스트림을 통해 jar 파일 컨텐츠에 액세스하는 방법을 제공합니다. – StanislavL

관련 문제