Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
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


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Servlets
Bookmark "relative path name for propertiesObject.load()" Watch "relative path name for propertiesObject.load()" New topic
Author

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();

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

Joined: Mar 22, 2000
Posts: 12759
    
    5
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

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);
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

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!
------------------
www.rusmo.com


<a href="http://www.rusmo.com" target="_blank" rel="nofollow">www.rusmo.com</a>
 
Consider Paul's rocket mass heater.
 
subject: relative path name for propertiesObject.load()
 
Similar Threads
path to load a file
write to a file
Lost properties
Relative path of file in FileInputStream
XSLTProcessor and usage of relative path