我希望使用:classpath:/mydata/response.xml将文件复制到。
像这样...... Path dest = Paths.get(“classpath:/mydata/response.xml”);用于Spring启动,这适用于其他地方但不使用Paths!
我想复制一个文件...
InputStream is = file.getInputStream();
//Which relative Path syntax?
Path dest = Paths.get("./src/main/resources/mydata"+fileName);
Files.copy(is, dest);
关于如何设置在Tomcat上存储我的文件的相对路径的任何建议?
我的目标是:
MyProject的\ SRC \主\资源\ MYDATA
这是一个很好的Spring Boot项目..
答案 0 :(得分:0)
使用相对于line.split(": ")
的路径并不是真正可行的,因为类路径是目录和/或jar文件的列表。如果有多个目录,您应该使用哪个目录?如果只有 jar文件,则根本没有任何意义。
我们的Tomcat服务器启动脚本之一就像这样开始类路径:
CLASSPATH
如果您希望存储/访问Web应用程序空间中的文件,可以使用ServletContext来解析与应用程序的安装目录相关的路径。使用getRealPath()
method但要小心,因为如果无法执行翻译,它可能会返回" null。
在Web应用程序的文件系统结构中存储任何内容都可能导致许多问题,因为重新部署必须保留添加的文件或销毁它们。
我建议改为创建一个可配置的数据目录,其中可以在(例如)CLASSPATH=$CATALINA_HOME/bin/tomcat-juli.jar:\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
文件中指定该目录的根目录,或者在Web中指定.properties
.xml文件(或其他部署描述符取决于您可能正在使用的框架)。