java.io.IOException:Permission denied

项目场景:

springBoot项目


问题描述

在进行后台导出数据功能时,报错:java.lang.RuntimeException: java.io.IOException:Permission denied

caused by: java.io.IOException: Permission denied
	at java.io.UnixFileSystem.createFileExclusively(Native Method)
	at java.io.File.createTempFile(File.java:2024)
	at org.apache.poi.util.DefaultTempFileCreationStrategy.createTempFile(DefaultTempFileCreationStrategy.java:110)
	at org.apache.poi.util.TempFile.createTempFile(TempFile.java:66)
	at org.apache.poi.xssf.streaming.SheetDataWriter.createTempFile(SheetDataWriter.java:89)
	at org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:72)
	at org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:77)
	at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheetDataWriter(SXSSFWorkbook.java:342)
	...

原因分析:

当前启动服务的账号,没有临时文件目录的写入权限,导致了创建临时excel的时候,没有权限。


解决方案:

解决方式(来自百度):
(1)直接使用 chmod -R 777 /tmp/poifiles 将临时文件目录权限设为 777
(2)在服务启动的时候设置临时文件的路径为当前启动服务的账号有权限写入的路径,可以使用 System.setProperty(java.io.tmpdir, “xxxx”) 来设置,也可以在启动时加 -Djava.io.tmpdir=xxxx来设置

╭◜◝ ͡ ◜◝╮
( ˃̶͈◡˂ ̶͈ )感觉有用的话,欢迎点赞评论呀!
╰◟◞ ͜ ◟◞╯

你可能感兴趣的:(问题解决,#,Java基础知识,java,开发语言)