2

大家好,我收到错误消息

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 richard.fileupload.FileUploadController.loadProp(FileUploadController.java:48)
    ... 60 more

每当我的属性类被调用时,这就是代码

 private Properties configProp = new Properties();

    @PostConstruct
    public void loadProp() {
        System.out.println("Loading properties");
        InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
        try {
            configProp.load(in);
            System.out.println(configProp.getProperty("destinationPDF"));
            System.out.println(configProp.getProperty("destination"));
            System.out.println(configProp.getProperty("fileList"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    private String destinationPDF = configProp.getProperty("destinationPDF");
    public String destination = configProp.getProperty("destination");
    private String username;

错误似乎来自这一行:

InputStream in = this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties");
        try {
            configProp.load(in);

是什么导致了这个错误,我该如何解决?

上面的代码应该指向属性文件,然后从中检索三个变量值,它没有达到

System.out.println(configProp.getProperty("destinationPDF"));
System.out.println(configProp.getProperty("destination"));
System.out.println(configProp.getProperty("fileList

在我得到错误之前

这是我的目录结构

在此处输入图像描述

如您所见,属性文件位于资源/中,我将如何获得指向此的链接

编辑 :

好的,所以它与文件的完整链接完美结合:

configProp.load(new FileInputStream("D:/Documents/NetBeansProjects/printing~subversion/fileupload/web/WEB-INF/config.properties"));

但是无论我将文件放在项目中的哪个位置,我都无法加载它,这是为什么呢?

4

1 回答 1

3

这行没有意义:

this.getClass().getClassLoader().getResourceAsStream("../resources/config.properties")

ClassLoader.getResourceAsStream()使用从根包开始的包路径从类路径加载资源。根包之上没有任何东西。

于 2013-02-16T17:39:48.817 回答