一开始我的代码是这样子的,读取本地子路径下的json文件

代码运行的时候,在window是可以正常的

  @Override
public String getBannerStr() {
String str = "";
try { Resource resource = new ClassPathResource("json/abc.json");
File file = resource.getFile();
str = FileUtils.readFileToString(file, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("Json信息查询出错");
} return str;
}

但是实际上,工程是在Linux上面部署为jar包的

上面访问方式就出错了,这边一开始以为是获取资源文件的方式出问题了

后来试了几次,发现问题不是这样.

最后百度发现,在Linux中无法直接访问未经解压的文件,所以就会找不到文件。

所以只能使用流的方式对静态资源进行读取

下面是最后修改的代码

@Override
public String getBannerStr() {
String str = "";
try {
InputStream stream = getClass().getClassLoader().getResourceAsStream("json/abc.json"); BufferedReader br = new BufferedReader(new InputStreamReader(stream));
String s = "";
try {
while ((s = br.readLine()) != null) {
str = str + s;
}
} catch (IOException e) { e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("Json信息查询出错");
} return str;
}

关于Linux上面无法读取资源目录下文件的问题的更多相关文章

  1. SpringBoot读取资源目录下的文件

    需要读取resources目录下的文件,那么方法如下: 假设在资源目录下的template目录下有一个文件a.txt,获取到文件流的方式 InputStream stream = this.getCl ...

  2. SpringBoot打成jar包后,获取不到读取resources目录下文件路径的问题

    问题描述: Springboot没有打成jar之前,可以成功获取读取resources目录下xxx.json文件的 路径.但是打成jar包后,接口调不通,原因是获取不到文件的路径. 原因: 在本地进行 ...

  3. IDEA中读取 resource目录下文件

    1. 资源文件 2. 加载文件 public void test() { try { System.out.println("begin test"); String filepa ...

  4. 发布jar包到服务器读取resource目录下文件

    * 解决:当项目打包成jar之后resources路径下面的证书文件访问不到* 思路:* 1.运行时先复制一个jar* 2.将复制的jar解压到jar文件目录* 3.删除复制的jar跟解压的非证书文件 ...

  5. WebApp基础01-设置读取assets目录下文件

    要读取assets下的目录,只需要修改三个地方即可 1.res/layout/activity_main.xml 2.AndroidManifest.xml 3.src\com\example\lcy ...

  6. SAS 读取指定目录下文件列表宏

    OPTIONS PS=MAX LS=MAX NOCENTER SASMSTORE=SASUSER MSTORED MAUTOSOURCE;/*获取指定文件夹的指定类型的所有文件*/%MACRO GET ...

  7. Eclipse 读取config目录下文件

    最近在一个项目,在项目下新建了一个config配置文件夹,添加一个配置文件config.properties. 使用classpath:config.properties方式加载配置文件, 具体实现代 ...

  8. idea 获取resources资源目录下文件

    以下格式都是正确的(注意:.properties文件中的第一行不要有空格!): URL resource01 = MainMobile.class.getResource(""); ...

  9. Spring boot 读取resource目录下的文件

    背景:最近做项目重构将以前的ssh + angular js架构,重构为spring boot + vue.项目是一个数据管理平台,后台涉及到多表关联查询,数据导入导出等. 问题:读取resource ...

随机推荐

  1. IExtenderProvider,c#组件扩展控件属性

    [ProvideProperty("IsEnabled", typeof(LayoutControlItem)), ToolboxItemFilter("System.W ...

  2. http、tcp简述

     网络简述第一章   http.tcp简述 一.网络7层协议从上到下分别是 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 : 其中高层(即7.6.5.4层)定 ...

  3. nodeJS中使用mongoose模块操作mongodb数据库

    在实际运用中,对于数据库的操作我们不可能一直在cmd命令行中进行操作,一般情况下需要在node环境中来操作mongodb数据库,这时就需要引入mongoose模块来对数据库进行增删改查等操作. 首先, ...

  4. vue项目前端限制页面长时间未操作超时退出到登录页

    之前项目超时判断是后台根据token判断的,这样判断需要请求接口才能得到返回结果,这样就出现页面没有接口请求时还可以点击,有接口请求时才会退出 现在需要做到的效果是:页面超过30分钟未操作时,无论点击 ...

  5. mysql启动失败“MySQL Daemon failed to start”

    CentOS上,用命令:service mysqld restart 启动mysql报错: # service mysqld restart Stopping mysqld: [ OK ] MySQL ...

  6. db2 with用法

    最近在研究db2 递归查询时想到了with,一直以为with只是用来查询递归,但是实际with功能强大,还有更加强大的功能,偶然读到一位大神的文章,对with做了很详细的解读,特贴出来供大家学习研究 ...

  7. Centos7虚拟机根分区扩展

    线上的kvm虚拟机,原来只规划了8G,后来发现硬盘动不动就被日志塞满了,需要进行扩容. 扩容步骤如下: 1.先把kvm虚拟机关机 2.在宿主机上进行kvm虚拟机的磁盘扩容 qemu-img resiz ...

  8. vue-element-admin实现模板打印

    一.简介 模板打印也叫”套打“,是业务系统和后台管理系统中的常用功能,B/S系统中实现”套打“比较繁琐,所以很多的B/S系统中的打印功能一直使用的是浏览器打印,很少实现模板打印.本篇将介绍在Vue E ...

  9. Caffe---Pycaffe 绘制loss和accuracy曲线

    Caffe---Pycaffe 绘制loss和accuracy曲线 <Caffe自带工具包---绘制loss和accuracy曲线>:可以看出使用caffe自带的工具包绘制loss曲线和a ...

  10. 选择排序Selection_Sort

    基本思想:和冒泡排序.直接插入排序并称为三大简单排序算法.显然,说明它们都很简单