下面部分显示的类包含一个 main 方法。当我运行代码时,我看到一个NullPointerException
(NPE),然后是一条错误消息 - “找不到主类,程序将退出”。我的理解是如果我得到NPE,说明代码正在运行,即JRE找到了main
开始执行的方法,那为什么我会得到错误信息呢?
这是控制台输出
java.lang.ExceptionInInitializerError
Caused by: java.lang.NullPointerException
at com.MyWorldDemo.getValue(MyWorldDemo.java:57)
at com.MyWorldDemo.<clinit>(MyWorldDemo.java:23)
Exception in thread "main"
简而言之:
- 用户名存储在属性文件中。
- 属性文件就像这样 username=superman....等
这是一些代码示例
class MyClass {
private final static String username = getData("username"); // ERROR HERE
private static Properties prop;
// more variables
static {
prop = new Properties();
try {
FileInputStream fis = new FileInputStream("MyDB.properties");
prop.load(fis);
} catch (IOException ex) {
ex.printStackTrace();
}
}
// this method will assign a value to my final variable username.
public static String getData(String props) {
String property = prop.getProperty(props);// ERROR HERE !!!
return property;
}
}