0

Fileプロパティファイルを保存するためにオブジェクトを作成しようとしています。以下のコードは機能しないため、パッケージから相対パスを指定する方法を知る必要があります。

    try {
        File file = new File(new File(Thread.currentThread().getContextClassLoader().getResource("").toURI()), "com/configuration/settings.properties");
        try (FileOutputStream fileOutputStream = new FileOutputStream(file)) {
            properties.store(fileOutputStream, null);
        }
    } catch (IOException | URISyntaxException ioe) {
        System.out.println(ioe);
    }
4

2 に答える 2

0

この行を置き換えるだけです:

File file = new File("/com/configuration/settings.properties");

と:

File file = new File(new File(Thread.currentThread().getContextClassLoader().getResource("").toURI()), "com/configuration/settings.properties");
于 2012-12-28T14:13:03.630 に答える
0

相対パスは、プログラムを実行している現在の作業ディレクトリによって異なります。

IDEで実行している場合、IDEは作業ディレクトリパスをプロジェクトディレクトリに設定する場合があります。また、プログラムの実行方法は、プログラム内のjar/claasesへのクラスパスによって異なります。

于 2012-12-28T13:59:00.343 に答える