I have made a program that uses multiple classes that do various tasks. Every class however will need to reference the same file path every run. So, in my jar executable I have a properties file that has 2 properties, filePath and installStatus. When I first run the program it tests installStatus and if thats “false” then the user is prompted to select a location where certain files and folders are created. My default values in my jar config.properties is ‘FileLocation=null’ and ‘Install=false’. This properties file (in eclipse) is located in the same package as my classes for ease of access. When I access config to test the install status (to ensure I’ve ran the program once and made the necessary files) I get no errors and the program proceeds to install properly. My code for the execution to find these properties is as below:
prop.load(installationClass.class.getResourceAsStream("config.properties"));
// If the "Install" property is false then that means this program
// is being run for the first time to we go through the installation
// process and if it isn't, move to the next class
if(prop.getProperty("Install").equals("false")) {
myObj.installLocation();
} else {
FileNotFoundGUI fnfGUI = new FileNotFoundGUI();
fnfGUI.mainMethod();
}
At the end of the execution of this class, I wish to update my properties to the filePath the user chose and install to true. I do that as shown below:
prop.setProperty("Install", "true");
filePath = filePath + "\Tracking Program\Text Files";
prop.setProperty("FileLocation", filePath);
FileWriter fw = new FileWriter("config.properties");
prop.store(fw, null);
However, this creates a new config.properties file in the same file location as my jar file which I need a filePath to navigate to and open. And to get that filePath in the other classes, I must access the properties file to retrieve which of course they don’t know where it is. Is there a way I can write to this config.properties file thats packed within my jar file?
I have unpacked my jar file to ensure my config.properties file is in there, which it is and it has my original additions to it. Those additions just will not update as it makes that new properties file. I have tried various ways to access this properties file as well as trying to access within the jar file which as of yet hasn’t worked. Any suggestions or ideas would be greatly appreciated.
TLDR: I want to access, read from, and write to a properties file that is stored within an executable jar file.