【问题标题】:Find resource in separate folder to class file在单独的文件夹中查找资源到类文件
【发布时间】:2014-01-17 10:50:10
【问题描述】:

我正在尝试在该类的单独文件夹中找到一个 txt 文件

类文件

C://workspace/project/src/pkg/Class.java

txt 文件

C://workspace/project/doc/pkg/myFile.txt

我正在尝试查找文本文件,而无需对 C://workspace/project/ 位进行硬编码

这可能吗?

目前,当文件与 Class.java 使用资源加载器位于同一包中时,我可以使用 classpath:/pkg/myFile.txt

【问题讨论】:

  • 从Windows什么时候开始使用/作为路径分隔符的?
  • 实际上有一个名为Class.java的类吗?
  • @Chiron 这不是最佳实践,但会起作用。
  • 这些资源是你提供的还是用户提供的?如果由您访问,请以embedded-resource by URL 的身份访问它们。如果是用户,请给他们一个JFileChooser
  • 可以加载资源相关this.getResourceAsStream("../../doc/pkg/myFile.txt")

标签: java file filepath


【解决方案1】:

您可以将 doc 文件夹作为源文件夹。这样,您可以将资源与代码分开,但仍然可以使用类加载器访问它。

当然,只有当您的资源可以成为 jar 的一部分时,这才对您有用。如果没有,您可能需要考虑使用可以配置资源完整路径的属性。

【讨论】:

  • 我想将它们保留为普通文件夹(因此不是源文件夹)。这是否意味着属性是唯一的方法,我试图避免这种情况
【解决方案2】:

尝试 getClass().getResource() 或 getClass().getClassLoader().getResource() 如果它在同一个 jar 文件中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多