由于ExceptionInInitializerError,使用ContextClassLoader读取属性文件失败?

时间:2018-07-04 00:07:50

标签: java

我正在尝试使用下面的代码读取属性文件。该代码在测试框架内,并且在运行测试方法时仅被调用一次。当运行测试方法时,静态代码将正常运行。

我在代码中添加了额外的main方法。由于代码后给出的错误,它失败。我需要帮助才能找出失败的原因。

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

public class MyClass {

    private static Properties myProps = new Properties();

    static {
        try {
            myProps.load(
                    Thread.
                            currentThread().
                            getContextClassLoader().
                            getResourceAsStream("config/critical.properties"));
        } catch (IOException e) {
            System.out.println("File not found config/critical.properties");
        }
    }

    public static void main(String [] args){
        System.out.println("Testing properties...");
    }

}

错误:

java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
    at java.util.Properties$LineReader.readLine(Properties.java:434)
    at java.util.Properties.load0(Properties.java:353)
    at java.util.Properties.load(Properties.java:341)
    at com.demo.learn.MyClass.<clinit>(MyClass.java:12)

我看到getResourceAsStream(“ config / critical.properties”)返回null。我如何找出为什么它返回null?我正在步入许多未知的类/函数,但是我无法弄清为什么返回空值。有没有一种简单的方法来找出为什么找不到属性文件?

谢谢!

0 个答案:

没有答案