java.io.FileNotFoundException 与 java.io.FileNotFoundException 处理记录

SpringBoot打成jar包后,读取resources目录下的文件异常处理

	本例引发错误的使用:
        String filePath = this.getClass().getClassLoader().getResource("certificate/kexin_client.p12").getPath();
        String client_file = filePath; 
        String client_passwd = passwd;
        
    以上错误用法在mvn进行package,引发异常java.io.FileNotFoundException的出现:
      	异常:
	          java.io.FileNotFoundException:
	               file:\C:\Users\JK\Downloads\apiservers\target\apiservers-0.0.1-SNAPSHOT.jar! (文件名、目录名或卷标语法不正确。) 
	               
		原因:
		      1、本地IDE测试过程中,文件是真实存在于磁盘的某个目录。此时获取的文件路径,是可以正常读取的,因为文件确实存在。
		      2、打包jar以后,实际上文件是存在于jar这个文件里面的资源文件,在磁盘没有真实路径的(\BOOT-INF\classes!\certificate\kexin_client.p12)
		      3、所以通过ResourceUtils.getFile或者this.getClass().getResource("")方法无法正确获取文件。   

       	解决:
	          1、指定要加载的资源路径与当前类所在包的路径一致,采用流的方式进行处理。
	                InputStream inputStream = this.getClass().getResourceAsStream("path")

参考:
https://www.jianshu.com/p/8bb3c63d3fa2
https://blog.csdn.net/seapeak007/article/details/76572256
https://blog.csdn.net/ccmedu/article/details/78783248

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值