java poi写文件报错:SXSSFWorkbook java.io.IOException:权限不够

使用SXSSFWorkbook.write(bos)写excel文件时,无法生成文件,报错permission denied。
报错的具体位置是SXSSFWorkbook类的write方法,line 515。

File tmpFile;
tmpFile = tmpFile.createTempFile("poi-sxssf-template",".xlsx");

就是Apache POI利用SXSSF写文件时,会产生临时文件,如果是linux系统,会位于/tmp/poifiles文件夹里。所以就是因为该工程的用户这个文件夹没有权限,所以poi无法在该目录生成临时文件,就报错了。
【解决方案】
我是粗暴的给把这个文件夹的权限给了所有用户。
还有更好的解决办法:
不同工程用户启动指定不同临时文件目录。

猜你喜欢

转载自blog.csdn.net/sinat_35803474/article/details/108000904