我有一個簡單的應用程序,它可以讀寫屬性文件。它是在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文件命令行我問:
java -classpath /usr/java/projectdirectory/project.jar com.company.projectname.controller.controllerclass arg1
因此,我已經設法在其他項目中以這種方式實現此目標,但由於某些原因,這不起作用。
我檢查了jar文件裏面的結構,並且所有的結果都在那裏。
任何人都可以指出我的錯誤,並幫助我解決這個問題嗎?
編輯 - 更改名稱以匹配。它們在我的代碼中始終保持一致
* *裏面的jar文件,不爲'的conf/controller.properties'該文件存在,或爲'的conf/runController.properties',或者是一個不同的名稱(或不同的路徑內罐子)? – dashrb
我確實更改了示例代碼,謝謝您的參考。它存在於conf/runController.properties的jar文件中。名稱在我的應用程序中都匹配 – nathj07
如果將屬性更改爲'/ conf/runController.properties',那麼它肯定是相對於jar本身(而不是相對於jar中的.class文件的位置) – dashrb