gpt4 book ai didi

java - 属性 lang.NullPointerException 从同一个包中读取

转载 作者:行者123 更新时间:2023-11-29 06:37:25 25 4
gpt4 key购买 nike

我尝试了属性文件路径的变体,但似乎无法使其正确。

Here's the structure:

src/
├── properties.properties
└── teln
├── ConnectMUD.java
├── IOUtil.java
└── PropertiesReader.java

和错误:

run:
Exception in thread "main" 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 teln.PropertiesReader.getProps(PropertiesReader.java:16)
at teln.ConnectMUD.main(ConnectMUD.java:18)

和有问题的类:

package teln;


import java.io.IOException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

public class PropertiesReader {

private static final Logger LOG = Logger.getLogger(PropertiesReader.class.getName());
private static Properties props = new Properties();

public static Properties getProps() {
try {
props.load(PropertiesReader.class.getResourceAsStream("/teln/teln.properties"));
} catch (IOException ex) {
Logger.getLogger(PropertiesReader.class.getName()).log(Level.SEVERE, null, ex);
}
LOG.fine(props.toString());
return props;
}
}

项目是Teln,包是teln(可能不是很好的选择)。

另请参阅:https://stackoverflow.com/a/8285636/262852

最佳答案

您的代码和设置不匹配。您在 teln 中请求一个 teln.properties 文件,但在 teln 之外显示一个 properties.properties 文件。请在您的问题中保持一致。

Class#getResource(String) 的 javadoc说明了一切。

ClassLoader 将查看类路径的根目录(您可以在 Netbeans 配置中定义类路径)。

使用像 Netbeans 这样的设置

src/
├── properties.properties
└── teln
├── ConnectMUD.java
├── IOUtil.java
└── PropertiesReader.java

我们可以假设类路径根是

properties.properties
teln/ConnectMud.class
teln/IOUtil.class
teln/PropertiesReader.class

如果要获取properties.properties资源,需要这样获取

 props.load(PropertiesReader.class.getResourceAsStream("/properties.properties"));

前缀/ 表示使路径相对于类路径的根目录。如果您省略了它,该方法将查看 PropertiesReader 类所在的包的根目录。

提示:如果您不确定您的类路径是什么,请使用 Netbeans 编译您的项目的 Jar 并在其中查看。

关于java - 属性 lang.NullPointerException 从同一个包中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com