环境 阿里云的centos部署的springboot项目,采用maven打的jar包。

项目中设计文件的上传和下载,所以会有对于文件路径的处理,但是在下载文件的时候一直会出现java.io.FileNotFoundException:  /xxxx/ xxxx(No such file or directory) 这个错误,一开始查实权限的问题,后来就给权限,结果也不是,后来排除发现是对于设置的文件路径中的“/” 斜线的使用问题。

我的启动docker的命令是:

docker run --name springboot -p 8080:8080 -it -v /root/myweb:/usr/local/project docker.io/java

exit

docker start springboot

docker exec -i -t springboot /bin/sh

cd /usr/local/project

java -jar springboot .jar &

上面命令不详细说了,就是挂载文件,启动docker容器,进入容器,启动项目

如果你设置的路径是这样的:

String fileName = "/usr/local/downLoadFile/test.txt";

此时usr前面有斜线,那么就会去docker的容器里面去找这个文件。(可以尝试在文件路径找不到的情况下使用mkdir或者mkdirs方法在服务器中创建文件夹,然后使用命令在linux中搜索这个文件夹就知道这个在哪了,你就会明白。)

如果你这样设置:

String fileName = "usr/local/downLoadFile/test.txt";

就回去你的存放springboot项目的jar的位置目录开始找这个文件。(也就是myweb下的usr下的local等等。)

对于new file的参数还需要详细研究,到底是绝对还是相对路径以及如何使用。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐