【问题标题】:Loading a file through ClassLoader not working in java?通过 ClassLoader 加载文件在 java 中不起作用?
【发布时间】:2026-01-16 22:35:01
【问题描述】:

SampleClass.javakeywords.properties 存在于我系统中的这个位置:
/home/user/Projects/SampleProject/src/ main/java/com/package/subPackage/

SampleClass.java 有静态和非静态函数。
在静态函数 ClassLoader.getSystemResourceAsStream(FILE_PATH)
在非静态函数中 this.getClass().getClassLoader().getResourceAsStream(FILE_PATH)

但它在 InputStream 中返回 null。我尝试了 FILE_PATH 的所有可能组合,如下所示:

/home/user/Projects/SampleProject/src/main/java/com/package/subPackage/prefix.properties

src/main/java/com/package/subPackage/prefix.properties

com/package/subPackage/prefix.properties

前缀属性

我关注了这些链接
getResourceAsStream() vs FileInputStream
http://viralpatel.net/blogs/loading-java-properties-files/

没有什么对我有用。请建议我哪里做错了?

【问题讨论】:

    标签: java


    【解决方案1】:

    除了资源应该放在resources文件夹而不是主源中,试试/com/package/subPackage/prefix.properties

    【讨论】:

    • 我试过你的建议 FILE_PATH = "/com/package/subPackage/prefix.properties" 但它没有用。但是资源文件夹的东西对我有用。在我的项目中已经有资源文件夹。我创建了一个配置文件夹并添加了 prefix.properties(新位置:/home/user/Projects/SampleProject/src/resources/config/prefix.properties)。更新的 FILE_PATH = "config/prefix .properties”,它工作了。谢谢
    • 你有 maven 项目吗?我假设你给的路径....那么资源文件应该在src/main/resources/
    • 是的,它是 Maven,您是该文件夹路径“src/main/resources/”中的正确资源