我想将manifest.mf文件用作InputStream
,以便我可以检索内部的一些数据。我使用以下代码行:
inputStream = new FileInputStream("../../../../WebContent/META-INF/MANIFEST.MF");
因为java类和manifestfile位于以下目录中:
不幸的是,这条路径总是给我一个FilenotFoundException
。引用此文件的正确途径是什么?
答案 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目录。