0

我正在尝试从属性文件中读取值,当我尝试运行该程序时,它给出的输出为
null

import java.io.FileInputStream;
import java.util.Properties;
public class JavaApplication1 {
final private static String osName = System.getProperty("os.name");
static final Properties configFile = new Properties() {

    {
        try {
            configFile.load(new FileInputStream("config.properties"));
        } catch (Exception e) {
        }
    }
};
private static String DIR = osName.equals("Linux") ? configFile.getProperty("tempDirForLinux") : configFile.getProperty("tempDirForWindows");
public static void main(String[] args) {
    System.out.println(DIR);
}
}
4

1 回答 1

1

在您的示例中有点奇怪的部分是您创建一个匿名 Properties 类,然后在初始化语句中将属性加载到同一类中。我不确定这是如何工作的(我猜不是)

这可能是你想要的

public class JavaApplication1 {
    final private static String osName = System.getProperty("os.name");
    static final Properties configFile = new Properties();

    static {
        try {
            configFile.load(new FileInputStream("config.properties"));
        } catch (Exception e) {
            e.printStackTrace();
        }
    };

    private static String DIR = osName.equals("Linux") ? configFile.getProperty("tempDirForLinux") : configFile.getProperty("tempDirForWindows");

    public static void main(String[] args) throws IOException {
        System.out.println(DIR);
    }
}
于 2012-04-22T18:23:21.310 回答