2014-03-26 32 views
0

我有一個'PropertiesUtil'類用於從配置文件中讀取屬性。類的代碼下面給出:使用類中的靜態代碼加載屬性文件

public class PropertiesUtil { 

    public static Properties prop; 
    public static String databaseConnectivityString; 
    public static String databaseUserName; 
    public static String databaseUserPassword; 

    static { 
     try { 
      prop.load(new FileReader(new File("config.prop"))); 
      databaseConnectivityString = prop.getProperty("databaseConnectivityString"); 
      databaseUserName = prop.getProperty("databaseUserName"); 
      databaseUserPassword = prop.getProperty("databaseUserPassword"); 
     } catch (IOException | NumberFormatException ex) { 
      LoggerUtil.getLogger().severe("Problem loading or Reading Configuration file"); 
     } 
    } 
} 

,當我從另一個調用類的「測試」下面的代碼主要方法,我得到一個NullPointerException異常。 'Test'類的代碼如下。請幫我解決問題。

public class Test { 
    public static void main(String... args) throws IOException { 
     System.out.println(PropertiesUtil.databaseUserName); 
    } 
} 
+0

check congig.pop在當前類路徑中是否可用..然後將屬性鍵與您在代碼中提供的屬性名稱進行匹配 – loknath

回答

4

立即初始化您的字段。

public static Properties prop = new Properties(); 

否則字段保持null和解除引用它

prop.load(new FileReader(new File("config.prop"))); 

導致NullPointerException