You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中无法加载Properties文件问题求助(附代码示例)

排查Properties文件加载失败的问题

看了你的代码,我发现几个关键问题导致Properties文件加载失败,咱们一步步来梳理:

1. 静态初始化语句的语法错误

你直接在类成员区域写了private static properties.load(reader);,这是不合法的Java语法——类的成员只能是字段、方法、构造器、静态代码块这些,不能直接执行方法调用语句。必须把加载Properties的逻辑放到静态代码块里,或者放到main方法中。

2. 未处理IO异常

FileReader的构造方法和properties.load()都会抛出IOException,但你的代码没有处理这些异常,不管是用try-catch捕获还是在静态代码块上声明抛出,都得处理,否则编译都通不过。

3. 资源未关闭风险

FileReader是IO资源,用完后没有关闭,会导致资源泄漏,最好用try-with-resources语法自动关闭资源。

4. 文件路径的潜在问题

虽然你写了绝对路径,但要确认:

  • 文件lists.properties确实存在于指定路径下
  • 路径里的大小写是否正确(Windows系统不严格,但偶尔会有问题)
  • 程序是否有该路径的读取权限

修正后的示例代码

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class A_Main { 
    private static Properties properties = new Properties();
    public static String UserName;
    public static String Passwd;

    // 用静态代码块初始化Properties
    static {
        try (FileReader reader = new FileReader("D:\\Selenium_Workspace\\SeleniumTEST\\lists.properties")) {
            properties.load(reader);
            UserName = properties.getProperty("lists.user");
            Passwd = properties.getProperty("lists.password");
        } catch (IOException e) {
            // 这里可以根据需要处理异常,比如打印日志或者抛出运行时异常
            e.printStackTrace();
            throw new RuntimeException("加载Properties文件失败", e);
        }
    }

    public static void main(String[] args) {
        // 测试读取到的属性
        System.out.println("用户名: " + UserName);
        System.out.println("密码: " + Passwd);
        // 你的其他代码...
    }
}

额外建议

如果是Selenium项目,更推荐把Properties文件放到src/main/resources目录下,然后用类加载器读取,这样打包后也能正常访问,避免硬编码绝对路径的问题,示例:

// 用类加载器读取资源文件
try (InputStream is = A_Main.class.getClassLoader().getResourceAsStream("lists.properties")) {
    properties.load(is);
} catch (IOException e) {
    e.printStackTrace();
}

内容的提问来源于stack exchange,提问作者MrAZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:07:22