【问题标题】:Using a manifest file as input in a webapplication [duplicate]在 Web 应用程序中使用清单文件作为输入 [重复]
【发布时间】:2013-11-29 03:09:34
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这与finally 块有什么关系?

标签: java filepath


【解决方案1】:

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

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

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

您还应该意识到WebContent 是您的 web 应用程序的sources 所在目录的名称。一旦打包部署到服务器上,就不会再有任何 WebContent 目录了。

【讨论】:

    【解决方案2】:

    试试这个:

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

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

    【讨论】:

      猜你喜欢
      • 2019-06-23
      • 2015-08-28
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-10
      • 1970-01-01
      相关资源
      最近更新 更多