如何在Eclipse Java Dynamic Web Project中使用.properties文件?

我正在Eclipse中开发一个Dynamic Web Project。 我为商店数据库详细信息(用户名,密码等)创建了一个.properties文件。 我通过右键单击项目和New – > File添加了它。 我使用了Java util包Properties类。 但它不起作用。 我无法从文件中检索任何属性。 这是我使用的代码,

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

有什么不对或有什么特别的地方我应该放置属性文件。

你所做的是正确的,即右键单击项目和new–file。你必须将你的属性放在你开始你的jvm的地方。 请查看附图。 属性文件标记为红色。 看看你的属性文件是否也像这样。 还要在代码中添加此内容以找出放置文件的位置:

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

有关更多详细信息,请在使用java属性文件时遵循此链接 – FileNotFoundException

在此处输入图像描述

通常,您确保属性文件位于项目运行时类路径中(例如WEB-INF / classes),然后使用System类加载器或属性文件处理程序的类加载器加载它,即( 从内存中手写输入 – 未编译

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

我打赌你没有指向正确的位置。 确保您的属性文件位于正确的位置。 使用该代码,我相信它正在寻找${CURRENT_WORKING_DIR}/database.properties ,这是eclipse中的Web应用程序的情况是WEB-INF/classes (我认为)。

您应该使用更具可移植性的java.util.Properties#load(InputStream) ,其结果为javax.servlet.ServletContext#getResourceAsStream(String)

尝试给出proprty文件的绝对路径或相对路径,同时检查这个文件路径是否已添加到源文件夹中,如果不是,则不会将其复制到您的classes文件夹中。 (右键单击项目,检查源选项卡下的java构建路径。

您应该将.properties文件放在与使用它的类相同的包中。

或者更好的是,使用getResourceAsStream方法读取属性文件(否则,当您在.war存档中有文件时,可能会遇到一些问题)。

 InputStream inputStream = getClass().getClassLoader().getResourceAsStream("database.properties"); 
Interesting Posts