Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

relative path name for propertiesObject.load()

 
John Davis
Ranch Hand
Posts: 189
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have a problem constructing a new FileInputStream for use in a propertiesObject.load() method.
The code is:
Properties dbProps = new Properties();

try
{
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
Rancher
Posts: 13064
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I scored this handy hint off the Tomcat mailinglist:
InputStream is = getClass().getResourceAsStream("/rollout.properties");
Properties props = new Properties();
try
{
props.load(is);
}
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.
Bill
 
Brian Nice
Ranch Hand
Posts: 195
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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);
props.load(fin);
fin.close();
} catch (Exception e) {}
That may not be a great place to keep property files, but it seems to work
 
Will Rogers
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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!
------------------
www.rusmo.com
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic