java读取外部配置文件_java读取jar外部的配置文件
一、为什么将配置文件放在java project外?
在java应用中经常会用到配置文件,配置文件中定义了程序运行所需要的一些配置信息,而配置文件既以放在java project内部(在给java project打jar包时将配置文件打在jar包内部),也可以放在java project外部。
在生产环境中比较可取的是:配置文件放在java project外部。这是因为:
当一个java程序运行在生产环境时,通常由运维人员来负责维护程序,如果有些配置信息需要修改,维护人员更改配置文件并重启程序即ok了。显而易见如果配置文件打包在jar包内部的话,修改配置文件就很繁琐,有时候甚至需要开发人员重新修改配置文件、重新打jar包并替换就jar。但是这种行为在生产环境中通常是不被允许的,因此就需要将配置文件放在jar包外部。
那么如何读取jar包外的配置文件呢?其和读取jar包内的配置文件不同。关于读取jar包内的配置文件方法可以参考:https://www.jianshu.com/p/bd7d7a2891f8
二、java读取jar包外的配置文件
2.1 在intellij idea中新建一个Java project(基于maven)
2.2 新建配置文件
step 1. intellij idea中选中工程(即图中的test123)并右击 --> new --> directory,输入目录名res(也可以是其他命名)。
step 2. 选中新建的res目录并右击 --> mark directory as --> resources root,即可得到图中的res目录(注意res右下角出现了黄色的横杠)。(该步骤很关键)
step 3. 选中res目录并右击 --> new ---> file,输入myCanal.properties(myCanal也可以改为其他),打开myCanal.properties并输入配置信息并保存,例如:
mysqlInstanceName=test1
mysqlSchemaName=alex
其中mysqlInstanceName和mysqlSchemaName都为属性的键key, test1和alex分别为其对应的属性值value。
配置文件示例
2.3 读取配置文件的业务代码
import java.io.*;
import java.util.Properties;
public class Main {
public static void main(String[] args)throws IOException {
Properties prop =new Properties();
InputStream inputStream =null;
try {
prop.load(new FileInputStream("res/myCanal.properties"));
/* 注释:也可以直接在src/main/resources目录下新建配置文件,但是new FileInputStream("res/myCanal.properties")需要改为new FileInputStream("src/main/resources/myCanal.properties") */
}catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
System.out.println(prop.getProperty("mysqlSchemaName"));
System.out.println(prop.getProperty("mysqlInstanceName"));
}
}
2.4 maven打包jar(配置文件不需要打入jar包)
打jar包方法网上有很多
2.5 将打包好的jar和intellij idea的test123工程下的res文件夹(包含配置文件)复制到*同一级目录下*(服务器或本机上运行该程序的地方)
(注意是*同一级目录下*,这很关键,否则程序会找不到该配置文件)
2.6 启动jar读取配置文件
在jar所在的路径,运行下面命令即可:
java -classpath abc-1.0.jar Main
其中abc-1.0.jar为打包好的jar,Main为主类
当然主类也可以直接定义在pom.xml文件中,具体方法可以参考网上。
java读取外部配置文件_java读取jar外部的配置文件相关推荐
- java jar包 配置文件_java 导入jar包中配置文件
spring项目只能识别到项目内的xml配置文件,无法识别jar中xml配置文件 解决思路: 在启动初始化期间,将jar包内部的文件拷贝到jar包外部相对路径中.//jarFullFileName: ...
- java读取mysql数据库配置文件_java读取properties文件的方法
Java 读写Properties配置文件 Java 读写Properties配置文件 1.Properties类与Properties配置文件 Properties类继承自Hashtable类并且实 ...
- java下mysql连接配置文件_Java读取.properties配置文件并连接数据库
1.读取配置文件 //Properties集合 流对象读取键值对 public static void getNum() throws Exception { Properties p=new Pro ...
- java接口配置文件_Java读取property配置文件,另接口的配置
为了程序容易修改,不用把接口的的信息放在程序里面,如果是那样,接口的端口改变就会造成很麻烦,所以把它写在配置文件properties中 1.新建一个配置文件property 如:test.prope ...
- java加载xml配置文件_java读取配置文件的几种方法
原标题:java读取配置文件的几种方法 在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据笔者工作中用到的读取配置文件的方法小小总结一下,主要叙述的是spring ...
- java中读取mp3文件_java读取mp3文件
JMF实际上是Java的一个类包.JMF 2.1.1技术提供了先进的媒体处理能力,从而扩展了Java平台的功能.这些功能包括:媒体捕获.压缩.流转.回放,以及对各种主要媒体形式和编码的支 持,如M-J ...
- Java读取propertise配置文件_JAVA读取PROPERTIES配置文件
项目经常用到json,xml,properties,文本文件等,作为配置文件.用来存储连接字符串或其他配置参数等. 本文记录properties. properties文件,存储格式 键=值.例如新建 ...
- java 监听配置文件_java读取系统Properties配置文件利用线程实时监控配置文件变化...
package util; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcept ...
- java加载配置文件_Java 读取配置文件的五种方式
方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来. 因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的clas ...
- java加载配置文件_java 读取和修改配置文件
1.读取配置文件 try{ File f=new File("D:\\myfile.text"); Properties pp=new Properties(); FileInpu ...
最新文章
- SharePoint 2010 与 SQL Server 2012 报表服务集成
- SQL Server 2008 R2中文版快速安装
- Apache Shiro 使用手册(三)Shiro 授权
- 管能做暖气管道吗_这样的暖气管道施工,标准吗
- [转载] 启用和禁用 Reporting Services 的客户端打印和导出文件格式
- 允許Linux的snmp服務被查詢
- ECCV 2020 Oral | BorderDet : 用边界特征做检测
- oracle 批量插入 mysql 区别,Oracle 和 mysql 的批量操作Sql语句 的区别
- 程序设计工程师c语言,《C语言程序设计》自学百问.doc
- 信用卡号校验java_ES reduce 一行代码解决信用卡号验证问题
- 福建省高考成绩查询2021具体时间,福建高考时间2021具体时间表一览 福建高考时间是几月几号...
- java过滤器Filter
- Java实现pdf打印文件
- 计算机中升序符号,电脑excel表格软件中的标点符号怎么快速替换
- 参考文献中英文人名_参考文献英文人名的缩写规则
- 高德地图2----输入提示、关键字查询
- 【逻辑思维训练 二】系统思维训练
- JavaScript的pop()
- Android-0. Android studio在导航栏增加自己的功能图标(如小扳手)
- Docker容器时间不正确 差八个时区
热门文章
- 不用找,你想要的家具贴图素材都在这里
- hivesql的几种优化的方法
- 勤哲excel服务器端口协议,勤哲EXCEL服务器2017版工作流定义方式及无限制版本非高低配单服务器版,不绑定服务...
- 【TCP/IP】【测试】常用发流软件一览
- CSDN博客下载器v1.0发布(Windows版本)
- 【读书笔记】《博弈论》--翟文明
- iframe中加载html页面,jQuery - 动态创建iframe并加载页面
- 好用的Android抓包神器 VNET
- 已知弧长计算器_半径弧长计算软件 弧长弦长求半径计算器
- talib python文档_talib 中文文档(三):talib 方法大全