wood burning stoves
The moose likes Servlets and the fly likes relative path name for propertiesObject.load() Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Servlets
Bookmark "relative path name for propertiesObject.load()" Watch "relative path name for propertiesObject.load()" New topic

relative path name for propertiesObject.load()

John Davis
Ranch Hand

Joined: Nov 02, 2000
Posts: 189
I have a problem constructing a new FileInputStream for use in a propertiesObject.load() method.
The code is:
Properties dbProps = new Properties();

dbProps.load(new FileInputStream("c:/program files/allaire/jrun/servers/default/Tods/web-inf/classes/db.properties"));

catch(FileNotFoundException e)
toadPackage.Debug.p("Could not find properties file ");
throw new ProccessException("could not find properties file:" + e);
catch(IOException e)
toadPackage.Debug.p("Error reading form properties file ");
throw new ProccessException("Error proccessing properties file:" + e);
As you can see, this is ugly and inflexible. The problem is that I do not want to specify a full hardcoded pathname for the constructor of the FileInputStream.
I am using JRun 3.0.
I have tried multiple variations of relative path names including the app's URI etc. and nothing seems to work. It can never find my file unless I hardcode the full path name. Anybody know how I can fix this?
William Brogden
Author and all-around good cowpoke

Joined: Mar 22, 2000
Posts: 13027
I scored this handy hint off the Tomcat mailinglist:
InputStream is = getClass().getResourceAsStream("/rollout.properties");
Properties props = new Properties();
catch (Exception e)
Where you keep your properties file in the classes directory.
This works because the class loader knows where the class came from.
Brian Nice
Ranch Hand

Joined: Nov 02, 2000
Posts: 195
I have found that with JRun I can put property files in the servers\default directory and can access them with no path information, but just the name of the file:
String propertyFile = "project.properties";
props = new Properties();
try {
FileInputStream fin = new FileInputStream(propertyFile);
} catch (Exception e) {}
That may not be a great place to keep property files, but it seems to work
Will Rogers

Joined: Dec 21, 2001
Posts: 4
Just so you know - newbies do know how to do searches before we ask newbie questions. thankfully, my question had already been answered here. Thanks, William!

<a href="http://www.rusmo.com" target="_blank" rel="nofollow">www.rusmo.com</a>
I agree. Here's the link: http://aspose.com/file-tools
subject: relative path name for propertiesObject.load()
It's not a secret anymore!