zoukankan      html  css  js  c++  java
  • spring boot打包文件后,报错No such file or directory

    现象:

    一段代码:

            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.使用流,直接读文件,则不存在上述要求。

  • 相关阅读:
    ADO.NET(一)数据库连接串的几种写法
    C#事件Event--猫捉老鼠
    事件
    委托
    C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的区别,List<T>删除汇总
    上传下载
    验证数据
    RSADemo2
    随机数
    二维码生成类
  • 原文地址:https://www.cnblogs.com/davidwang456/p/8624769.html
Copyright © 2011-2022 走看看