你好。
需要将有关数据库连接的信息传输到单独的文件中。我尝试使用此选项,但我仍然无法理解文件的物理位置db.properties
属性 prop = new Properties(); InputStream inputStream = FetchData.class.getClassLoader().getResourceAsStream("/db.properties"); prop.load(inputStream); Stringdriver = prop.getProperty("驱动程序"); 字符串 url = prop.getProperty("url"); String user = prop.getProperty("用户"); String password = prop.getProperty("密码");
试图张贴/web-inf/classes/db.properties
但找不到它。试图指定一个绝对路径 - 结果也是负面的。
他应该在哪里?
示例 1. 我们使用结构
getClass().getResource("/images/logo.png")
。由于名称以“/”字符开头,因此被认为是绝对的。搜索资源如下:类路径附加
c:\work\myproject\classes
有资源的名称/images/logo.png
,导致对文件的搜索c:\work\myproject\classes\images\logo.png
。如果找到该文件,则搜索停止。Otherwise: 从jar文件c:\lib\lib.jar
中查找文件/images/logo.png
,从jar文件的根目录开始查找。示例 2. 我们使用结构
getClass().getResource("res/data.txt")
。由于名称不以“/”字符开头,因此被认为是相对的。搜索资源如下:类路径中的路径
c:\work\myproject\classes
被分配代码所在的当前类包-/ru/skipy/test
,-然后是资源的名称,res/data.txt
结果是文件c:\work\myproject\classes\ru\skipy\test\res\data.txt
。如果找到该文件,则搜索停止。else:jar文件c:\lib\lib.jar
中查找一个文件/ru/skipy/test/res/data.txt
(当前类的包名加上资源名),从jar文件的根目录开始查找。在您的情况下,您需要在
getResourceAsStream("db.properties")
不指定“/”符号的情况下进行编写,以便在文件夹中找到该文件,project\src\main\resources\
但您可以按照示例中的方式放入db.properties
并project\db.properties
指定