我已经做了很多研究,但还没有发现任何有类似问题的人。

pathSeparator=System.getProperty("file.separator");


我通过此函数获取文件分隔符(“ /”或“ \”)。

theFile = new java.io.File( this.getServletContext().getRealPath(pathSeparator+"EXAMPLE"+pathSeparator+"EXAMPLE1"+pathSeparator+"EXAMPLE2"+pathSeparator + EXAMPLE3+ ".example") );


上面的代码应该从以下字符串获取getRealPath:

\EXAMPLE\EXAMPLE1\EXAMPLE2\EXAMPLE3.example


这样做,但是在执行代码后将变量theFile设置为null。如果我将pathSeperator设置为“ /”,则theFile不为null,它可以正常工作。有什么想法吗?

最佳答案

阅读ServletContext()。getRealPath的文档。

如果无法将路径转换为真实路径,则此方法返回null。

Java和Servlet特别使用“ /”作为其虚拟路径表示的路径分隔符。即使在Windows系统上也是如此。

因此,使用“ \”在Servlet上下文中没有任何价值,如果您使用ServletContext()。getRealPath,则将获得null。

关于java - Tomcat 8.0.27和System.getProperty(“file.separator”),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39991991/

10-09 14:21