aspose file tools*
The moose likes Java in General and the fly likes How to detect a config file when using a shell script to start the app Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "How to detect a config file when using a shell script to start the app" Watch "How to detect a config file when using a shell script to start the app" New topic
Author

How to detect a config file when using a shell script to start the app

Andreas Brillisauer
Greenhorn

Joined: Nov 02, 2004
Posts: 2
Hello,

I devoloped an application and made an jar file. To configure the app there exists an config file. I placed the config file in the directory "conf". The jar file lives beside the conf directory. So I have the following files.

application.jar
conf/config.xml

The application should always find the config file in the directory "config" which is in the same directory as jar. To get the config file I use such code.

File config = new File("config/config.xml");

This work because the jar is in the same directory as the conf directory. But I want to write a shell script to run the app. When I start the shell script that could be located anywhere. So the current working directory is the directory where the script lives. And "config/config.xml" couldn't be located from there. Is there a way to write code that always searches for the config path in the same directory as the jar lives?

Regards,
Andreas
Petr Blahos
Ranch Hand

Joined: Apr 28, 2004
Posts: 131
Hi Andreas,

I suggest that you put the config file elsewhere. I would put the
master version of that in the jar file and give a possibility to
override values using a user-defined config file. Therefore:
1) The config file won't be necessary in some cases.
2) It will be possible that different users will have different configs.
3) The jar file can be on a read-only filesystem, and generally it honours the idea of separation of the program and data.

How to do it?
* Many java programs just use environment variable, like ANT_HOME, CATALINA_HOME. You can have a similar one for your classes.
* It can be a well-known hard-coded location, like /etc/, but this system is outlived in java apps I believe.
* The best think might be: Use yourjar_HOME and define it in your start-up script. The start-up script will be probably generated during installation.

Best regards,
Petr


Get a better web browser:<br /><a href="http://www.mozilla.org/products/firefox/switch.html" target="_blank" rel="nofollow">http://www.mozilla.org/products/firefox/switch.html</a>
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to detect a config file when using a shell script to start the app