我已经做了很多研究,但还没有发现任何有类似问题的人。
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/