1. 今天晚上写了一个程序,基于Spring boot的一个小网站,发现使用FileUtils.class.getResource(path)来获取jar包中的资源文件并不能成功,其路径很奇怪

file:/Users/lonecloud/Documents/ideaCode/git/export/target/export-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/temp/temp.xls

 查阅资料后,并且查看jar包中的资源文件发现有!还有classes!这样的文字,超级奇怪。后面找到一个折中的方法解决了该问题

public static File getJarResourceFile(String path, String fileName){//获取容器资源解析器ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();try {//获取所有匹配的文件Resource[] resources = resolver.getResources(path + fileName);if (resources.length > 1) {//获得文件流,因为在jar文件中,不能直接通过文件资源路径拿到文件,但是可以在jar包中拿到文件流InputStream stream = resources[0].getInputStream();if (logger.isInfoEnabled()) {logger.info("读取的文件流  [" + stream + "]");}String targetFilePath = System.getProperty("user.home") + File.separator + resources[0].getFilename();if (logger.isInfoEnabled()) {logger.info("放置位置  [" + targetFilePath + "]");}File ttfFile = new File(targetFilePath);org.apache.commons.io.FileUtils.copyInputStreamToFile(stream, ttfFile);return ttfFile;}} catch (IOException e) {if (logger.isWarnEnabled()) {logger.warn("读取文件流失败,写入本地库失败! " + e);}}throw new RuntimeException("未找到文件"); }

  

 

转载于:https://www.cnblogs.com/lonecloud/p/9114040.html

springboot jar包运行中获取资源文件相关推荐

  1. java资源文件路径_Java 中获取资源(文件)的路径问题总结

    Java 中获取资源(文件)的路径问题总结 首先,Java 中获取资源大体上可分为两种方式,基于 文件系统的 和 基于classpath的. 1. 基于文件系统的相对简单. 比如 构造一个File f ...

  2. SpringBoot打成Jar包运行,获取运行Jar包的目录

    SpringBoot获取运行Jar包的目录 // linux和windows下通用 private String getJarFilePath() {ApplicationHome home = ne ...

  3. Spring Boot Freemark HTML 生成 PDF、生成水印Logo、docx文件生成PDF,Jar包运行可读取模板文件、字体文件

    用于通过模板生成PDF,在项目中生成个人授权协议函.个人电子保单.流水报表,数据报表等,将HTML静态模板写出来后,将数据替换成动态数据即可. <!-- html2pdf --> < ...

  4. Java中获取资源文件路径

    Java路径 Java中使用的路径,分为两种:绝对路径和相对路径.具体而言,又分为四种: 一.URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpm ...

  5. Android中获取资源文件的几种方法

    1.通过String获取其在R.drawable中的int try{ Field field=R.drawable.class.getField("icon"); int i= f ...

  6. thinkphp5.1模板中获取资源文件路径

    thinkphp5.1月thinkPHP5.0不同没有默认设置任何模板替换变量,如果需要使用模板替换,需要在template.php配置文件中添加如下: 'tpl_replace_string' =& ...

  7. IntelliJ IDEA生成jar包运行报Error:A JNI error has occurred,please check your installation and try again

    首先介绍一下IntelliJ IDEA生成jar包的方式: 1.打开项目,打开FIile->Project Structure...菜单.如下图: 选中Artifacts,点+号,选择JAR,再 ...

  8. java获取资源文件的各种方法

    1.在test环境中获取xml: @Test     public void testFindUserById() throws Exception{ String resource = " ...

  9. 从jar包中读取资源文件

    :[解惑]深入jar包:从jar包中读取资源文件 精华帖 (3) :: 良好帖 (15) :: 新手帖 (9) :: 隐藏帖 (0) 作者 正文 Heart.X.Raid 等级: 性别: 文章: 72 ...

最新文章

  1. NBT:未培养病毒基因组的最少信息标准(MIUViG)
  2. java返回有什么用,java中的return this什么时候用,返回的是类里面的方法类型,还是实例类?上面的代码什么意思...
  3. APICloud创始人兼CEO刘鑫:论API经济和企业移动战略
  4. mysql行锁加在什么上_mysql怎么加行锁?
  5. Android Studio 使用Lambda
  6. 【LeetCode】4.寻找两个正序数组的中位数
  7. Linux网络模式及远程连接出错排障
  8. arkit技术介绍_面向移动AR的触觉技术:如何以“触摸”感增强ARKit应用
  9. mysql第四步安装失败_MySQL8.0版本的安装以及解决安装后MySQL服务无法启动的问题...
  10. xencenter如何安装Centos7虚拟机系统
  11. 怎样复制百度文库中的内容?
  12. 元素周期表Mac动态桌面壁纸
  13. Linux ELF 详解3 -- Symbol Table Symbol
  14. 鸿鹄系统和鸿蒙系统的区别,华为鸿蒙系统和全新的鸿鹄处理器将于8月9日正式发布,荣耀首发...
  15. html倒计时免费代码,JS倒计时代码汇总
  16. 企业抖音蓝v怎么认证?详谈蓝v申请认证流程
  17. python进阶之路———文件处理
  18. windows ltsc版本没有Microsoft Store怎么解决
  19. Elementary OS安装及开发环境配置(一)
  20. js的重点3:轮播图(实现多个图无缝连接播放)、使用Swiper轮播图效果

热门文章

  1. 分隔符有哪些_Python有哪些常用的标准库?Python基础教程,常用标准库(一)
  2. mysql 部署到服务器_服务器快速部署--使用Docker部署MySQL
  3. 11个前端开发者必备的网站
  4. 各个阶段的前端得会哪些“特殊”技能?
  5. 2020年最新前端框架大全,Web工程师人手一份!
  6. 表贴电阻尺寸与什么有关_0欧电阻存在的意义?看了就懂了
  7. 照片看3秒就销毁的软件_3.9秒破百,比亚迪汉EV到店实拍:实车比照片更好看
  8. php控制器增删改查设计,控制器的增删改查操作
  9. img 样式单和属性
  10. mysql相互密码_去掉mysql命令行密码不安全的提示