Java文件上传下载异常(IO Error/Permission denied)

原创
2020/11/20 09:58
阅读数 2.2K

java服务出现IO Error/Permission denied,如下:

Caused by: java.io.IOException: Permission denied
        at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[na:1.8.0_232]
        at java.io.File.createTempFile(File.java:2024) ~[na:1.8.0_232]
        at org.apache.poi.util.DefaultTempFileCreationStrategy.createTempFile(DefaultTempFileCreationStrategy.java:110) ~[poi-3.17.jar!/:3.17]
        at org.apache.poi.util.TempFile.createTempFile(TempFile.java:66) ~[poi-3.17.jar!/:3.17]
        at org.apache.poi.xssf.streaming.SXSSFWorkbook.write(SXSSFWorkbook.java:924) ~[poi-ooxml-3.17.jar!/:3.17]
        at com.alibaba.excel.write.ExcelBuilderImpl.finish(ExcelBuilderImpl.java:89) ~[easyexcel-1.1.2-beat1.jar!/:na]
        ... 135 common frames omitted

问题解决步骤:

  • 找到 JVM 参数 -Djava.io.tmpdir,使用ps -ef | grep java
  • 找到此目录,查看权限,一般情况下是jvm process用户的权限问题。
  • 如果没有这个参数。默认的目录是/tmp目录。

顺便说一下目录权限修改:

  • chown -R user:group /tmp/*
  • chown是修改文件归属哪个用户和组
  • -R是递归修改,即把子目录也修改了
  • user:group是java process所属的用户和组
  • tmp/*也可以是/tmp,但是/tmp会把tmp目录本身的归属也该了。tmp默认属于root用户,不建议修改。
展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部