How to use a .properties file in Eclipse Java Dyna

2020-06-20 04:17发布

I'm developing a Dynamic Web Project in Eclipse. I created a .properties file for store database details (Username, Password etc.). I added it by right clicking on the project and New -> File . I used the Java util package Properties class. But it does not working. I can not retrieve any property from the file. Here is the code I used,

Properties prop = new Properties();

    try {

        prop.load(new FileInputStream("database.properties"));

        String db = prop.getProperty("database");
        String userName = prop.getProperty("dbuser");
        String password = prop.getProperty("dbpassword");

    } catch (IOException ex) {
        ex.printStackTrace();
    }

Is there something wrong or Is there any particular place where I should put properties file.

5条回答
祖国的老花朵
2楼-- · 2020-06-20 04:53

You should instead be using the more portable java.util.Properties#load(InputStream) with the result of javax.servlet.ServletContext#getResourceAsStream(String).

查看更多
戒情不戒烟
3楼-- · 2020-06-20 04:54

Try to give absolute path or relative path to the proprty file, also check this propery file path has been add to source folders or not, if not it will not be copied to your classes folder. (Right cclick on project , check java build path under source tab.

查看更多
混吃等死
4楼-- · 2020-06-20 04:57

What you did is correct, ie right clicking the project and new--file.You have to Put your properties where you start your jvm from. Please look into the attached image. The properties file is marked in red. Look if your properties file is also located something like this. Also add this in your code to find out where to put your file:

System.out.println(new File(".").getAbsolutePath());

For more details please follow this link- FileNotFoundException when using java properties file

enter image description here

查看更多
Melony?
5楼-- · 2020-06-20 05:04

Normally, you make sure the properties file is in the project runtime classpath (e.g. WEB-INF/classes) and then load it using either the System classloader or the property file handler's classloader, i.e. (Freehand typing from memory -- NOT COMPILED)

try{
     Properties p = new Properties();
     InputStream in = MyPropertyHandler.getClass()
           .getClassLoader()
           .getResourceAsStream("com/package/props/database.properties");
     p.load(in);
catch(IOException e){
     e.printStackTrace(System.err);
}

I'm betting you aren't pointing at the correct location. Make sure you're properties file is in the correct place. Using that code, I believe it is looking for ${CURRENT_WORKING_DIR}/database.properties, which is the case of a web app in eclipse is WEB-INF/classes (i think).

查看更多
兄弟一词,经得起流年.
6楼-- · 2020-06-20 05:10

You should have .properties file in same package as class that is using it.

Or better, read properties file with getResourceAsStream method (otherwise you can have some problem later when you'll have file in .war archive).

InputStream inputStream = 
    getClass().getClassLoader().getResourceAsStream("database.properties");
查看更多
登录 后发表回答