有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    阅读ServletContext()的文档。getRealPath

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

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

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