2013-11-15 3 views
0

manifest.mf 파일을 InputStream으로 사용하여 내부에있는 일부 데이터를 검색 할 수 있습니다.웹 응용 프로그램에서 매니페스트 파일을 입력으로 사용

inputStream = new FileInputStream("../../../../WebContent/META-INF/MANIFEST.MF"); 

때문에 자바 클래스와 manifestfile은 다음 디렉토리에 있습니다 :

enter image description here

불행하게도,이 경로는 항상 나에게 FilenotFoundException을주고 난 다음 코드 줄을 사용합니다. 이 파일에 대한 올바른 경로는 무엇입니까?

+1

'finally'블록과 어떤 관련이 있습니까? –

답변

1

를 해결 곳

File file = new File("../../../../WebContent/META-INF/MANIFEST.MF"); 
System.out.println(file.getCanonicalPath()); 

참조하십시오. 이 파일은 배포 된 앱의 war 파일에 포함됩니다. 따라서 파일 시스템에 있지 않습니다. 그래서 그것을 FileInputStream으로로드하는 것은 올바른 해결책이 아닙니다.

사실, 파일 경로는 FileInputStream을 만드는 클래스와 관련이 없습니다. 응용 프로그램 서버가 시작된 디렉토리에 상대적입니다.

웹 응용 프로그램 리소스를로드하는 방법은 ServletContext.getResourceAsStream() 메서드를 사용하는 것입니다. javadoc (및 ServletContext.getResource()의 javadoc)을주의 깊게 읽으십시오.

WebContent은 웹 응용 프로그램의 소스이있는 디렉토리의 이름입니다. 일단 서버에 패키징되어 전개되면 WebContent 디렉토리는 더 이상 존재하지 않습니다.

1

이 시도 : 앱이 파일이있는 생각과 경로 당신은 당신의 웹 응용 프로그램의 응용 프로그램과 함께 번들로 제공되는 파일을로드 할

관련 문제