ClassLoader を使用して、アプリケーション ディレクトリを見つけることができます。参照: Java: アプリケーション ディレクトリの検索。.INIファイルではなく、 .propertiesファイルを使用します。これは、 Propertiesクラスを介してロードおよび保存できます。
他の人が指摘したように、ユーザー設定をアプリケーション ディレクトリに書き込むべきではありません。ユーザーがアプリケーション ディレクトリへの書き込みアクセス権を持っていない場合はどうなりますか? アプリケーションが同じシステム上で同時に複数のユーザーによって使用されている場合はどうなりますか? Windows であっても、これらの状況はいずれも異常ではありません。
アプリケーション ディレクトリからいくつかの設定をロードしたい場合があります。おそらく、管理者がそこでデフォルト設定を構成しています。
一般的な規則は、ユーザー設定をユーザーのホーム ディレクトリに保存することです。
/home/user/.eclipse
C:\Documents and Settings\User\.eclipse
これは、不要なファイルを残す可能性があることを意味しますが、ユーザーがアプリを再インストールする場合に役立ちます。そのようなことは README に文書化してください。ディレクトリへの参照を作成して取得する方法は次のとおりです。
public static File getSettingsDirectory() {
String userHome = System.getProperty("user.home");
if(userHome == null) {
throw new IllegalStateException("user.home==null");
}
File home = new File(userHome);
File settingsDirectory = new File(home, ".myappdir");
if(!settingsDirectory.exists()) {
if(!settingsDirectory.mkdir()) {
throw new IllegalStateException(settingsDirectory.toString());
}
}
return settingsDirectory;
}
Unix ライクなオペレーティング システムでは、ディレクトリ名をピリオド (".myappdir") で始めると、ディレクトリが非表示になります。Windows では、My Documentsの下に配置されるため、ユーザーが検索しない限り、ディレクトリは表示されません。