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 文件 同一目录 即可