一般的なアプローチは、システムプロパティに関連するパスを使用することです。これにより、OS固有の形式(C:\...
または/opt/
)でルートフォルダを指定し、後で相対部分を添付することができます。
JavaはWindowsとUnixの相対パスを処理できるため、new File( "C:\\app", "conf/log4j.xml" )
実際にはを開こうとすることに注意してくださいC:\app\conf\log4j.xml
。
あなたの場合、あなたはこのコードを使うことができます:
File confFolder = new File( System.getProperty( "confDir" ) );
File log4j = new File( confFolder, "log4j.xml" );
もう1つのオプションは、構成ファイルの変数名を置き換えることです。そうすればあなたは持つことができます
<logConfDir>${appRoot}/conf</logConfDir>
<log4j>${logConfDir}/log4j.xml</log4j>
Systemプロパティがある場合はlogConfDir
、configオプションを上書きする必要があります。これにより、顧客は必要と思われることを何でもできるようになります。