【问题标题】:How to read a resource file in Java standalone applications如何在 Java 独立应用程序中读取资源文件
【发布时间】:2013-09-04 06:47:47
【问题描述】:

我正在创建一个 Java 应用程序,我需要在其中读取我无法读取的模板。那是因为我无法找到具有正确路径的文件。

代码结构如下:

模板读取类文件在 src/main/java/com.prototype.main 中, 模板位于 src/main/java/templates

这意味着,当我创建一个 jar 时,三个文件夹将是 3 个文件夹: com 模板 元信息

现在如何从包下的任何类访问模板? 我尝试了以下方法:

  1. new File("/") 如果是 web 应用程序,它会从应用程序的根目录中选择,但在独立应用程序中它是系统的用户目录
  2. System.getProperty("user.dir") 给出项目目录
  3. new App().getClass().getName() 显示以点分隔的包名

那么如果我想读取像/templates/some.xml这样的模板文件,我该如何获取这个文件的完整路径呢?

提前感谢您的帮助。

【问题讨论】:

    标签: java embedded-resource


    【解决方案1】:

    嵌入的资源不是File,它是一种资源。

    您可以根据需要使用Class#getResourceClass#getResourceAsInputStream 阅读这些资源。

    例如...

    URL url = getClass().getResource("/templates/some.xml");
    

    将返回对指定资源的URL 引用。

    【讨论】:

    • 非常感谢您的帮助。我会让你知道结果。
    【解决方案2】:

    你可以使用

    InputStream i=this.getClass().getClassLoader().getResourceAsStream("templates/some.xml");
    

    xml FileNotFoundException using slick2D library in java中所述

    【讨论】:

      猜你喜欢
      • 2013-12-13
      • 2017-04-09
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2010-09-29
      • 2017-05-18
      相关资源
      最近更新 更多