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 に答える