千家信息网

java maven项目怎么读取配置文件信息

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇文章给大家分享的是有关java maven项目怎么读取配置文件信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。maven项目读取配置文件信息目录结构主类App.jav
千家信息网最后更新 2025年02月02日java maven项目怎么读取配置文件信息

这篇文章给大家分享的是有关java maven项目怎么读取配置文件信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

maven项目读取配置文件信息

目录结构

主类

App.java

package com.tomy.hive; import java.io.*;import java.util.Properties; /** * Hello world! * */public class App {    private static String JDBC_URL;    private static String JDBC_DRIVER;     /**     * 读取配置文件     * @return     */    public static void readConfigFile(String cfgFile) {        try {            InputStream in = App.class.getClassLoader().getResource(cfgFile).openStream();            Properties prop = new Properties();            prop.load(in);            JDBC_URL = prop.getProperty("jdbc.url");            JDBC_DRIVER = prop.getProperty("jdbc.driver");        } catch (IOException e) {            e.printStackTrace();        }    }     public static void main(String[] args) {        readConfigFile("resources/jdbc.properties");        System.out.println(JDBC_URL);        System.out.println(JDBC_DRIVER);    }}

配置文件

jdbc.properties

jdbc.url=jdbc:mysql://10.6.52.35:3306/test?characterEncoding=utf-8&serverTimezone=UTC&useSSL=falsejdbc.driver=com.mysql.jdbc.Driver

pom文件

   4.0.0   com.tomy.hive  hive-demo  1.0-SNAPSHOT   hive-demo    http://www.example.com       UTF-8    1.8    1.8               junit      junit      4.11      test                                     org.apache.maven.plugins          maven-surefire-plugin                      true                                    org.apache.maven.plugins          maven-jar-plugin          3.0.2                                                                        true                        com.tomy.hive.App                                                                          maven-resources-plugin                                    copy-resources              validate                              copy-resources                                            ${project.build.directory}/conf                                                      src/main/resources                                                                                                            true        src/main/resources                  **/**.properties                /resources            

控制台运行

jar命令运行

maven工程读取resources配置文件的正确姿势

我们maven项目结构如下:

使用相对路径来读取resources目录下的资源文件

InputStream in = new InputStream(new File("src/main/resources/car.txt"));

这样在本地运行的时候,是能正常读取到的,不会报错,但是如果打成jar包,运行的时候就会报路径错误。

从jar包的结构可以看到,resources目录的资源文件位置变了,在项目的最外层了,所以导致相对路径也发生了变化。

这个时候,我们可以通过getClassLoader()方法来获取正确的配置文件路径。

(this也可以换成类的名称)

InputStream in = this.class.getClassLoader().getResourceAsStream(path);

这样,在本地运行或者jar包运行都能正常读取到配置文件了。

感谢各位的阅读!关于"java maven项目怎么读取配置文件信息"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0