2019独角兽企业重金招聘Python工程师标准>>>

一 。 如何获取jar包外的文件?

新项目用jar包运行,直接需求就是读取jar外部的配置文件properties,做到不同的环境有不同的配置信息。

用Spring管理的话

<context:property-placeholder ignore-unresolvable="true"location="classpath:config/database.properties,classpath:config/voiceapi.properties,classpath:config/threadpool.properties,file:${user.dir}/override.properties"/>

需要2点:

1.file:协议

2.${user.dir} ,来自jdk的 System.getProperty("user.dir") ,会输出项目的本地路径

二。 如何文件流?

public static String getProperties(String keyWord) {InputStream is = PropertiesProvider.class.getClassLoader().getResourceAsStream("config/error.properties");BufferedReader br = new BufferedReader(new InputStreamReader(is,Charset.forName("utf-8")));Properties properties = new Properties();try {properties.load(br);return properties.getProperty(keyWord);} catch (IOException e) {e.printStackTrace();}return null;
}

最合理的代码。推荐使用。如果用file 取读,会遇到jar包路径获取不到的问题。

三。如何获取文件路径?

当项目里需要读取配置文件,有相对路径和绝对路径之分。绝对路径存在无法迁移,适配性不高的问题,只讨论相对路径

java不会支持获取.java文件的路径,只能依靠根据.class文件获取相对路径

Producer.class.getResource("config/kafka.properties").getPath();

1.配置文件肯定需要统一管理, 通常在resource文件下

2.配置pom.xml,让maven打包的时候加入resource目录

<!--管理配置文件打包-->
<resources><resource><!--需要打包的目录--><directory>${basedir}/src/main/resources</directory><!--打包后的目录,默认是根目录--><!--<targetPath>src/main/resources</targetPath>--><filtering>false</filtering></resource>
</resources>

3.程序里

static {properties = new Properties();String path = Producer.class.getResource("/config/kafka.properties").getPath();try {FileInputStream fis = new FileInputStream(new File(path));properties.load(fis);} catch (Exception e) {e.printStackTrace();}
}

getResource方法的逻辑,如果是斜杠 / 符号开头,就是根目录找,这里和pom.xml的配置对应。

转载于:https://my.oschina.net/u/2382040/blog/2050088

Spring读取jar包外部的配置文件properties相关推荐

  1. java 读 jar外文件_读取Jar包外面的配置文件

    比较常用的方法是将properties文件直接打入JAR包中,然后使用Properties类进行读取.有时候也需要读取在JAR外面的配置文件.废话不多说,直接上代码: import java.io.B ...

  2. Spring Boot Jar包运行指定配置文件

    springboot会按照下列优先级来加载application.property配置文件:优先级由高到低 1.jar包同级目录的config目录下 2.jar包同级目录的application.pr ...

  3. 如何读取jar包外的properties和log4j.properties等配置文件

    一般在项目中使用properties配置文件的时候都将相关的properties文件放在src目录下,在将该app打包生成jar后,相应的properties配置文件生... 一般在项目中使用prop ...

  4. Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件

    项目中,经常把一部分功能独立出来,做一个java  project,然后打成jar包供其他项目引用.这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采 ...

  5. 如何读取jar包外的properties文件和log4j.properties

    2019独角兽企业重金招聘Python工程师标准>>> 时间有限,不做排版和具体讲述问题产生的过程,下面是我的解决方案,已证实有效,其中Log4jP = "log4j.pr ...

  6. spring 各个jar包的功能

    http://bbs.chinaunix.net/thread-1644704-1-1.html spring 依赖jar包: spring.jar 是包含有完整发布模块的单个jar 包.但是不包括m ...

  7. spring 的jar包解释

    2019独角兽企业重金招聘Python工程师标准>>> Struts.Hibernate.Spring这类的框架给我们开发带来非常大的好处,让我们更加快速.有效的开发.所以我们在开发 ...

  8. 读取jar包所在目录和jar包内文件

            在网上查找了很多关于读取jar包的相对路径资料,但是大多都是读取jar包内文件的方法介绍,甚至有人将读取包内路径的方法混淆为读取包外路径的方法.经过本人亲自的测试,对于两种读取文件的方 ...

  9. 读取jar包资源代码赏析

    2019独角兽企业重金招聘Python工程师标准>>> 该代码来自jfinal engine.读取jar包内代码通常通过classLoader获取 // // Source code ...

最新文章

  1. imu oracle,问一个关于IMU REDO的问题~
  2. jmi,mof,cwm
  3. 大规模web服务开发技能
  4. 如何学习配置webpack(一)
  5. 2019年招聘python工程师薪资飙升,Python这些技能你掌握了吗
  6. 赛码网算法: 军训队列( python实现 )
  7. wp7设置浏览器主页
  8. 【转】POP3、SMTP和IMAP之间的区别和联系
  9. SQL2008 SP3下载
  10. STM32官方封装库下载方法
  11. 深度学习之图像分类(七)--ResNet网络结构
  12. java开根号函数_如何在Java中计算平方根和平方根?
  13. 联想小新电脑摄像头黑屏、检测不到设备、指示灯不亮解决方案
  14. Cloudcompare2.12.2使用vs2022带插件编译以及在WSL中编译cloudCompare【最新实践】
  15. 2021年,学UI设计还吃香吗?
  16. pixiv的服务器信息,Pixiver™
  17. Cosmos IBC
  18. 一个快速测试PlayCanvas Demo 的工程(内附源码)
  19. | JavaScript脚本注入,完成Selenium 无法做到的那些事
  20. 对公司的选择和个人职业发展规划的一些想法

热门文章

  1. python函数参数定义不合法_下列哪种函式参数定义不合法?
  2. android token过期怎么跳转登录_用sa-token轻松解决网站权限验证
  3. leetcode算法题--Count and Say
  4. C中strcpy函数实现
  5. libpcap捕包机制分析(三)
  6. DPDK 大页内存原理(二十一)
  7. DPDK 数据包捕获基本流程(十六)
  8. dataframe 筛选_使用pandas筛选出指定列值所对应的行
  9. xampp去运行php文件_从0开始构建一个属于你自己的PHP框架
  10. mysql中序列的使用,在MySQL中使用序列的简单教程