springboot打jar包部署在Linux服务器上,ResourceUtils.getFile获取不到文件的问题。

  • Post author:
  • Post category:linux


ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX+"static/document.jpg");

在开发环境获取文件没问题。

但是打jar包部署在linux服务器报错:

class path resource [project/] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:...

我的解决方案:

//Linux环境下获取jar包classpath中的文件
ClassLoader cl = this.getClass().getClassLoader();
InputStream inputStream = cl.getResourceAsStream("classpath:static/document.jpg");
            //如果是Linux环境  这个inputStram就不会为空
            if (null == inputStream) {
                //走这里是因为是开发环境
                File targetFile = ResourceUtils.getFile("classpath:static/document.jpg");
            } 

如果是部署在Linux环境的话,那么inputStream就不会为空,这样既满足了开发环境,也满足了测试环境。



版权声明:本文为qq_42797418原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。