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 文件 同一目录 即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)