【问题标题】:How to calculate real path of file in java using relative path?如何使用相对路径计算java中文件的真实路径?
【发布时间】:2012-10-30 22:06:41
【问题描述】:

我创建了动态网络项目。其中我编写了一个 Java 类,它打开一个属性文件并返回传递给函数的键的值。

但要打开属性文件,我必须写一个完整的路径,如c:/Apache/webapps/webcontent/resources/system.properties。但是我想用相对路径来计算这个文件的真实路径。

如何计算真实路径?这不是一个 servlet,它是一个完整的 Java 文件,只有一个类及其方法。如何计算文件的真实路径?

【问题讨论】:

    标签: jakarta-ee


    【解决方案1】:

    如果您使用相对路径加载File,则调用File.getCanonicalPath()File.getAbsolutePath() 将为您提供绝对路径。

    使用应用服务器时,您的工作目录将是您的应用服务器的启动位置,因此要使用相对路径获取File 的绝对路径,您需要执行以下操作:

    String relativePath = '/mypath/myfile.txt';
    String absolutePath = getServletContext().getRealPath(relativePath);
    File file = new File(absolutePath);
    

    【讨论】:

    • 如果可以使用相对路径加载文件,则可以通过在生成的File对象上调用上述方法获取绝对路径。
    • :还有另一个问题。当我将它作为 java 应用程序运行时,它采用正确的路径,但是当我在服务器上运行它时,它返回错误的路径。我从启动 servlet 调用它。当我更改工作目录时从 servlet 调用。在 eclipse .exe 文件所在的位置,它将此作为工作目录。请告诉我如何解决这个问题?
    • 您的工作目录将是您的应用服务器的启动位置。如果您需要获取此位置以及相对于它的文件路径,请使用String absolutePath = getServletContext().getRealPath(relativePath); 然后您可以使用absolutePath 加载您的File
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2012-01-28
    • 1970-01-01
    相关资源
    最近更新 更多