我想將我的manifest.mf文件用作InputStream
,因此我可以檢索其中的一些數據。我用下面的代碼行:在Web應用程序中使用清單文件作爲輸入
inputStream = new FileInputStream("../../../../WebContent/META-INF/MANIFEST.MF");
因爲Java類和manifest資源配置文件位於以下目錄:
不幸的是,這條路總是給我一個FilenotFoundException
。什麼是引用這個文件的正確途徑?
我想將我的manifest.mf文件用作InputStream
,因此我可以檢索其中的一些數據。我用下面的代碼行:在Web應用程序中使用清單文件作爲輸入
inputStream = new FileInputStream("../../../../WebContent/META-INF/MANIFEST.MF");
因爲Java類和manifest資源配置文件位於以下目錄:
不幸的是,這條路總是給我一個FilenotFoundException
。什麼是引用這個文件的正確途徑?
要裝載捆綁與你的web應用程序的文件。該文件將成爲部署應用程序的戰爭文件的一部分。因此它不會在文件系統上。因此使用FileInputStream加載它不是正確的解決方案。
順便說一句,文件路徑不是相對於創建FileInputStream的類。它們與啓動應用程序服務器的目錄相關。
加載webapp資源的方法是使用ServletContext.getResourceAsStream()
方法。仔細閱讀它的javadoc(和javadoc ServletContext.getResource()
)。
你也應該認識到,WebContent
是你的web應用程序的來源的名稱。一旦打包並部署在服務器上,就不會有任何WebContent目錄了。
試試這個:
File file = new File("../../../../WebContent/META-INF/MANIFEST.MF");
System.out.println(file.getCanonicalPath());
看到你的應用程序認爲該文件位於和解決路徑
這與'finally'塊有什麼關係? –