1、属性文件如下:

10001=错误

2、文件读取主要代码

// getResource方式
URL resourceURI = getClass().getClassLoader().getResource("");
// getResourceAsStream方式
InputStream stream = getClass().getClassLoader().getResourceAsStream("errorCode.properties");
logger.info(">>>>>>>>>>>>>>>>>>>>>> errorCode stream " + stream);
logger.info(">>>>>>>>>>>>>>>>>>>>>> resourceURI " + resourceURI);
if (null == stream) {
logger.warn("errorCode.properties file not find");
return;
}
InputStreamReader reader = new InputStreamReader(stream,"UTF-8");
properties.load(reader);
Enumeration<?> keys = properties.propertyNames();
while(keys.hasMoreElements()) {
String key = (String) keys.nextElement();
String value = properties.getProperty(key);
logger.info("key :" + key + "- value:" + value);
}

2.1 使用idea启动读取测试

2.2 使用java -jar xxx.jar启动测试

从运行结果来看,使用getResourceAsStream方式可以读到jar中的文件,而使用getResource读取为空,在jar文件中查找资源和在文件系统中查找资源的方式是不一样的,尽量使用Stream流的方式操作资源文件。

使用spring-boot-maven-plugin插件打出的fat-jar是不可以作为其他应用的jar依赖的,因为无法向普通的依赖jar那样去读取jar中的一些文件,这个和spring-boot-maven-plugin打包机制有关,可以换成使用maven-jar-plugin插件替换进行成可运行的的jar

springboot 打成的jar包在ClassLoader().getResource方法读取文件为null的更多相关文章

  1. 使用Class.getResource和ClassLoader.getResource方法获取文件路径

    自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...

  2. 【转载】使用Class.getResource和ClassLoader.getResource方法获取文件路径

    自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...

  3. springboot打成的jar包如何在Linux上持久运行

    一.首先说说在没有springboot的时候,项目是如何部署的? 1.动态web项目 动态web项目部署很方便,基本上上传文件到服务器的tomcat里面的webapps文件夹下即可完成部署.当然了,这 ...

  4. SpringBoot打成的jar包发布,shell关闭之后一直在服务器运行

    1:可以编写shell脚本, 切换到执行的jar包目录,然后使用nohup  让改命令在服务器一直运行 #!/bin/bash cd /srv/ftp/public nohup java -jar l ...

  5. Maven将代码及依赖打成一个Jar包的方式

    Maven可以使用mvn package指令对项目进行打包,如果使用java -jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in ...

  6. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  7. Android中库项目、jar包等的使用方法

    在软件开发过程中,程序代码的复用,是非常重要的概念.我们总是需要使用一些现有的模块.包.框架,或开发自己的模块.包.框架,来实现对程序代码的复用.比如在JavaWeb编程过程中,经常使用的Struts ...

  8. jar包生制作几种方法,jar包导出三种方法:eclipse导出、jar命令、FatJar插件

    Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法 方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三 ...

  9. 22.访问jar包下资源路径里的文件

    访问jar包下资源路径里的文件 因为打包路径和你构建的代码路径是有差异的,想要查看真实的路径情况,可以查看编译后的classes目录下的文件结构. 想要获取资源文件流: private InputSt ...

随机推荐

  1. Linux下 Nginx安装与配置(Centos7)

    1:下载解压 #下载 wget http://nginx.org/download/nginx-1.14.0.tar.gz #解压 tar -xzf nginx-1.14.0.tar.gz cd ng ...

  2. Windows10无法访问局域网文件夹

    给目录guest用户,并启用guest 最近硬盘存储不开资料在同学的电脑存储了然后使用Windows提供的共享文件夹功能提供文件访问,可是今天上午一不小心把系统玩挂了重新安装了Windows10专业工 ...

  3. C++中几种字符串表示方法

    最近学习C++时,被几种字符串搞的有点乱,这里记录一下. c++中有两种风格字符串,分别是: C++风格字符串 C风格字符串 它们各自的声明方式如下: void main(){ string a = ...

  4. tp5.1 根据IP地址获取用户所在省市(个人笔记)

    class IPAddress extends Common { /** * 根据ip地址,获取用户所在省市 */ public function ipIndex() { $ip = "22 ...

  5. DELPHI6中DSGNINTF.DCU找不到时的解决方法

    https://www.cnblogs.com/gaodu2003/archive/2009/06/04/1495789.html 1.添加 lib\designide.dcp到控件的dpk文件的re ...

  6. Vue框架(四)——路由跳转、路由传参、cookies、axios、跨域问题、element-ui模块

    路由跳转 三种方式: $router.push / $router.go / router-link to this.$router.push('/course'); this.$router.pus ...

  7. VMware和Centos安装

    1.Windows,VMware和Centos三者的关系 2.VMware安装 下载好之后一直下一步安装,很简单 3.Centos安装 打开VMware,点击创建新的虚拟机  选择自定义,然后点下一步 ...

  8. jQuery格式化显示json数据

    一.概述 JSONView 在gitlab上面,有一个jQuery JSONView插件,地址为:https://github.com/yesmeck/jquery-jsonview demo地址:h ...

  9. SQL Server 隔离级别(RC&RR)

  10. 爬虫多次爬取时候cookie的存储用于登入

    一.用requests模块自动保存(保存缓存中) 构建一个session对象session = requests.session() 用构建的session代替requests进行访问他就会自动存啦 ...