[英]can not read information from config file
我編寫了一個Java程序,並使用了一個配置文件,該文件從中讀取了所有靜態信息。 我多次使用配置文件,但是這次,程序無法從中讀取信息。
這是我的Config
類:
public class Config {
private static final PropertiesReader PROPS_READER = new PropertiesReader("/config.properties");
public static final int HOUR = PROPS_READER.getInt("hour");
public static final int MINUTE = PROPS_READER.getInt("minute");
public static final int SECOND = PROPS_READER.getInt("second");
public static final Long DELAY = PROPS_READER.getLong("delay");}
這是我的PropertiesReader
類:
import java.io.IOException;
import java.util.Properties;
public class PropertiesReader {
private final Properties PROPS = new Properties();
public PropertiesReader(String path){
try {
PROPS.load(PropertiesReader.class.getResourceAsStream(path));
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
}
public String getString(String key) {
return PROPS.getProperty(key);
}
public int getInt(String key) {
return Integer.valueOf(getString(key));
}
public long getLong(String key) {
return Long.valueOf(getString(key)) ;
}
}
這是我稱之為Config
的地方:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, Config.HOUR);
cal.set(Calendar.MINUTE, Config.MINUTE);
cal.set(Calendar.SECOND, Config.SECOND);
這是我得到的錯誤:
Exception in thread "main" java.lang.NoSuchFieldError: HOUR
配置文件:
# To change this template, choose Tools | Templates
# and open the template in the editor.
hour=11
minute=3
second=0
delay=1200
我將Netbeans 7.3
用作IDE和jdk1.7
。 我應該提到,只要不使用配置文件,我的程序就可以正常工作。 這是我第一次遇到這個問題,我無法解決。 我將不勝感激任何建議。
嘿,您的代碼甚至無法編譯... PropertiesReader類中的getString()定義在哪里?
我做了一些簡化,但這應該可以工作(將屬性文件放在項目的根目錄中):
package my.stuff;
import java.io.IOException;
import java.util.Calendar;
import java.util.Properties;
public class TestClass {
/**
* @param args
*/
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, Config.HOUR);
cal.set(Calendar.MINUTE, Config.MINUTE);
cal.set(Calendar.SECOND, Config.SECOND);
System.out.println(cal.toString());
}
}
class PropertiesReader {
private final Properties PROPS = new Properties();
public PropertiesReader(String path){
try {
PROPS.load(PropertiesReader.class.getResourceAsStream(path));
} catch (IOException ex) {
ex.printStackTrace(System.err);
}
}
public int getInt(String key) {
return Integer.valueOf((String)PROPS.get(key));
}
}
class Config {
private static final PropertiesReader PROPS_READER = new PropertiesReader("/config.properties");
public static final int HOUR = PROPS_READER.getInt("hours");
public static final int MINUTE = PROPS_READER.getInt("minutes");
public static final int SECOND = PROPS_READER.getInt("seconds");
}
這是config.properties的內容:
hours=10
minutes=22
seconds=30
delay=10
由我自己引起的錯誤引起的問題。 在該程序中,我調用了另一個具有配置文件的程序,因此,每當我運行該程序時,它都會從錯誤的配置文件中讀取。
所以我更改了配置文件的名稱和地址,問題解決了! 我不知道這是我的問題還是netbeans錯誤!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.