使用清单文件作为Web应用程序中的输入

时间:2013-11-15 16:33:26

标签: java filepath

我想将manifest.mf文件用作InputStream,以便我可以检索内部的一些数据。我使用以下代码行:

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

因为java类和manifestfile位于以下目录中:

enter image description here

不幸的是,这条路径总是给我一个FilenotFoundException。引用此文件的正确途径是什么?

2 个答案:

答案 0 :(得分:1)

试试这个:

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

查看您的应用认为文件所在的位置并修复路径

答案 1 :(得分:1)

您希望加载与Web应用程序应用程序捆绑在一起的文件。此文件将成为已部署应用的war文件的一部分。因此它不会在文件系统上。因此,使用FileInputStream加载它不是正确的解决方案。

BTW,文件路径与创建FileInputStream的类无关。它们与启动应用程序服务器的目录相关。

加载webapp资源的方法是使用ServletContext.getResourceAsStream()方法。仔细阅读其javadoc(以及ServletContext.getResource()的javadoc)。

您还应该意识到WebContent是您的webapp的来源所在目录的名称。打包并部署在服务器上后,将不再有任何WebContent目录。