![](/img/trans.png)
[英]Not able to load properties file in Dynamic web project in Eclipse for Java
[英]How to use a .properties file in Eclipse Java Dynamic Web Project?
我正在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
您应该使用更具可移植性的java.util.Properties#load(InputStream)
,其结果为javax.servlet.ServletContext#getResourceAsStream(String)
。
通常,您确保属性文件位于项目运行时类路径中(例如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
中的Web应用程序就是WEB-INF/classes
(我认为)。
尝试给出proprty文件的绝对路径或相对路径,也检查这个文件路径是否已经添加到源文件夹中,如果没有,它将不会被复制到您的classes文件夹中。 (右键单击项目,检查源选项卡下的java构建路径。
您应该将.properties文件放在与使用它的类相同的包中。
或者更好的是,使用getResourceAsStream
方法读取属性文件(否则,当您在.war存档中有文件时,可能会遇到一些问题)。
InputStream inputStream =
getClass().getClassLoader().getResourceAsStream("database.properties");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.