设置在Tomcat上运行的相对路径

时间:2016-03-07 22:47:58

标签: nio filepath

我希望使用: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项目..

1 个答案:

答案 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文件(或其他部署描述符取决于您可能正在使用的框架)。