现象:

一段代码:

        ClassLoader loader = XXXUtil.class.getClassLoader();
String jsFileName = loader.getResource("") + "/resources/" + fileName;
logger.info("文件路径为"+jsFileName);

在本地开发测试,完全ok(windows下);

上测试环境,报错/opt/jar_code/xxx/xxxx.jar!/BOOT-INF/classes!/resources/xxxxx.js (No such file or directory)

上述目录出现"!" 比较奇怪。

解决方案:

不读文件路径,直接读文件流

            input = XXXUtil.class.getClassLoader()
.getResourceAsStream("resources" + File.separator + fileName);
reader = new InputStreamReader(input, Constant.UTF_8);

初看两种方式,应该是一致的。

其实则不同:

1.使用文件路径,要求该路径下的文件在文件系统上是可以访问的。因为jar文件需要解压才能访问,直接访问不了。

2.使用流,直接读文件,则不存在上述要求。

最新文章

  1. 基本组件的使用——UITabBarController
  2. Rabin-Karp指纹字符串查找算法
  3. SuiteScript > Script Queue Monitor (Beta)
  4. iframe 简单的一个用法 局部调用
  5. 新年PR交期回写,展望期由14天改为30天,FP_PR2SAP ;转单量改为100W;FP_PR2SAP_MOD_NEW
  6. 学习ASP.NET MVC(九)——“Code First Migrations ”工具使用示例
  7. Silverlight 调用自托管的wcf 报跨域异常的处理
  8. 2015弱校联盟(1) - C. Censor
  9. POJ 1442 Black Box
  10. [项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决
  11. Jersey框架一:Jersey RESTful WebService框架简介
  12. CSAPP(2):程序的汇编表示(Linux版)
  13. 分布式全局不重复ID生成算法
  14. Ubuntu下Git服务端搭建
  15. PHP 常用字符串函数
  16. JAVA常见简答题
  17. PAT1048. Find Coins(01背包问题动态规划解法)
  18. [树莓派]启用root账户
  19. Django web框架-----url path name详解
  20. vue-cli使用swiper插件

热门文章

  1. 洛谷 4246 BZOJ 1018 [SHOI2008]堵塞的交通
  2. 初学hash
  3. BZOJ 2095 [POI2010]Bridges (最大流、欧拉回路)
  4. hadoop balancer 二
  5. 【Codeforces 464A】No to Palindromes!
  6. Apache 流框架 Flink,Spark Streaming,Storm对比分析(2)
  7. HDU 1018 阶乘数的位数
  8. BZOJ 1853
  9. windows开启3306端口并用可视化工具访问远程mysql(授权访问)
  10. android中读取通讯录学习笔记