プロパティファイルの読み書きを行う簡単なアプリケーションがあります。これはNetBeansで開発されたもので、Netbeans内から実行するとうまく動作します。しかし、今私はそれを構築し、それを配置したプロパティファイルが見つかりません。私は、プロパティファイルにアクセスするには、次のしているコードでJavaアプリケーションがプロパティファイルを見つけることができないのはなぜですか
プロジェクト構造
com/company/projectname/controller/controllerclass.java <- this is where the code using the properties file exists
conf/runController.properties <- the properties file, this exists here
:
(簡潔にするために要約)private final String PROPERTIESFILELOCATION = "conf/runController.properties";
public void runController(){
this.runController = new Properties();
this.propertiesLocation = this.getClass().getClassLoader().getResource(this.PROPERTIESFILELOCATION);
FileInputStream propsInput = new FileInputStream(this.propertiesLocation.getFile());
this.runController.load(propsInput);
}
を
私はからjarファイルを呼び出すとコマンドラインI発行:
java -classpath /usr/java/projectdirectory/project.jar com.company.projectname.controller.controllerclass arg1
これまで他のプロジェクトでこれを達成してきましたが、何らかの理由でこれが機能していません。
私はjarファイル内の構造をチェックしており、すべてがそこに期待通りです。
誰でも私の間違いを指摘し、これを手に入れて実行してください。
EDIT-名前が一致するように変更しました。
* jarファイル*内部では、ファイルは 'のconf/controller.properties'として、または' confに/ runController.properties'として存在しない、またはそれは別の名前(または内部に別のパスであります瓶)? – dashrb
サンプルコードを変更しました。ありがとうございました。 jarファイルのconf/runController.propertiesに存在します。アプリケーション内のすべての名前が一致する – nathj07
プロパティを '/ conf/runController.properties'に変更すると、jarファイル自体の相対パスであることが確実になります(jarファイルの.classファイルの場所には相対しません) – dashrb