环境 阿里云的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的参数还需要详细研究,到底是绝对还是相对路径以及如何使用。