2013-11-15 46 views
0

我想將我的manifest.mf文件用作InputStream,因此我可以檢索其中的一些數據。我用下面的代碼行:在Web應用程序中使用清單文件作爲輸入

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

因爲Java類和manifest資源配置文件位於以下目錄:

enter image description here

不幸的是,這條路總是給我一個FilenotFoundException。什麼是引用這個文件的正確途徑?

+1

這與'finally'塊有什麼關係? –

回答

1

要裝載捆綁與你的web應用程序的文件。該文件將成爲部署應用程序的戰爭文件的一部分。因此它不會在文件系統上。因此使用FileInputStream加載它不是正確的解決方案。

順便說一句,文件路徑不是相對於創建FileInputStream的類。它們與啓動應用程序服務器的目錄相關。

加載webapp資源的方法是使用ServletContext.getResourceAsStream()方法。仔細閱讀它的javadoc(和javadoc ServletContext.getResource())。

你也應該認識到,WebContent是你的web應用程序的來源的名稱。一旦打包並部署在服務器上,就不會有任何WebContent目錄了。

1

試試這個:

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

看到你的應用程序認爲該文件位於和解決路徑

相關問題