JavaTomcat8.0.27和系统。getProperty(“file.separator”)
我做了很多研究,但没有发现任何人有类似的问题
pathSeparator=System.getProperty("file.separator");
我通过这个函数获得文件分隔符(“/”或“\”)
theFile = new java.io.File( this.getServletContext().getRealPath(pathSeparator+"EXAMPLE"+pathSeparator+"EXAMPLE1"+pathSeparator+"EXAMPLE2"+pathSeparator + EXAMPLE3+ ".example") );
上述代码应通过以下字符串获取RealPath:
\EXAMPLE\EXAMPLE1\EXAMPLE2\EXAMPLE3.example
但变量theFile在代码执行后被设置为null。如果我将PathSeparator设置为“/”,则该文件不为null,并且它可以正常工作。你知道为什么吗
# 1 楼答案
阅读ServletContext()的文档。getRealPath
如果此方法无法将路径转换为实际路径,则返回null
Java和servlet特别使用“/”作为虚拟路径表示的路径分隔符。即使在Windows系统上也是如此
因此,在Servlet上下文中使用“\”没有任何价值,您将从ServletContext()获得null。getRealPath,如果您使用它的话