IntelliJ IDEA java maven项目读取配置文件信息

一、在main目录下 新建 resources 目录 并将其设为 资源文件目录

 

 

二、在pom.xml 中添加 下面代码  只这样 打包后 jar 才能有配置文件

<resources>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/**.properties</include>
        </includes>
        <targetPath>/resources</targetPath>
      </resource>
 </resources>

 三、具体实现的代码

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public static String POSTGRESQL_URL;
public static String POSTGRESQL_USER;
public static String POSTGRESQL_PASSWORD;
/**
     * 读取配置文件
     * @return
     */
    public static void readConfigFile(String cfgFile) {
        try {
            InputStream in = App.class.getClassLoader().getResource(cfgFile).openStream();
            Properties prop = new Properties();
            prop.load(in);
            POSTGRESQL_URL = prop.getProperty("postgresql.url");
            POSTGRESQL_USER = prop.getProperty("postgresql.user");
            POSTGRESQL_PASSWORD = prop.getProperty("postgresql.password");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
 public static void main( String[] args )
 {
        //System.out.println( "启动 SinaServer " );
        logger.info("启动 SinaServer");
        //读配置文件
        readConfigFile("resources/postgresql.properties");
        //System.out.println(POSTGRESQL_URL);
        logger.info("读配置文件 "+POSTGRESQL_URL +" "+ POSTGRESQL_USER + " " +  POSTGRESQL_PASSWORD);
}

下面是通篇代码,供参考

package com.SinaServer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
 * SinaServer
 */
public class App 
{
    public static final Logger logger = LoggerFactory.getLogger(App.class);
    public static String POSTGRESQL_URL;
    public static String POSTGRESQL_USER;
    public static String POSTGRESQL_PASSWORD;

    /**
     * 读取配置文件
     * @return
     */
    public static void readConfigFile(String cfgFile) {
        try {
            InputStream in = App.class.getClassLoader().getResource(cfgFile).openStream();
            Properties prop = new Properties();
            prop.load(in);
            POSTGRESQL_URL = prop.getProperty("postgresql.url");
            POSTGRESQL_USER = prop.getProperty("postgresql.user");
            POSTGRESQL_PASSWORD = prop.getProperty("postgresql.password");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main( String[] args )
    {
        //System.out.println( "启动 SinaServer " );
        logger.info("启动 SinaServer");
        //读配置文件
        readConfigFile("resources/postgresql.properties");
        //System.out.println(POSTGRESQL_URL);
        logger.info("读配置文件 "+POSTGRESQL_URL +" "+ POSTGRESQL_USER + " " +  POSTGRESQL_PASSWORD);
 
    }
 
}

四、如果运行出错

试试去掉   pom.xml  中的  <targetPath>/resources</targetPath>

五、编译

IntelliJ IDEA 具体怎么 编译 在我之前的博客中有讲

https://www.cnblogs.com/hailexuexi/p/14887291.html

这里重点说一下。

postgresql.properties 这个配置文件 被打包到了  **.jar 中了

 

 用 压缩软件 打开  ***.jar 文件 其中 resources 目录中

 再右键  用 记事本 打开  postgresql.properties 文件

 保存后,再启动这个  **.jar 程序,就弄获取到 新的配置值

 注:如果把 所有 .jar文件 打在外部的方式,就将 postgresql.properties 放到与 主程序的 jar 文件 同一目录 即可

posted @ 2021-06-29 13:17  海乐学习  阅读(1196)  评论(0编辑  收藏  举报