【问题标题】:How do java resolve relative path like [ new File("filename.txt") ] ? [duplicate]java如何解析像 [ new File("filename.txt") ] 这样的相对路径? [复制]
【发布时间】:2014-06-13 07:57:42
【问题描述】:

在 java 中我使用相对路径来创建这样的文件:

File file = new File("filename.txt");

程序如何解析路径?在我的程序中,我有一个与此相关的问题。当我工作时,我使用 eclipse - 它从编译文件运行程序(不将其打包到 .jar)。最终,程序将作为 jar 文件或在 ubuntu 中使用一些脚本运行。在上述所有这 3 种情况下,代码在不同的目录中创建路径。要修复它,我必须了解它是如何工作的。那么java如何解析这样的相对路径呢?

【问题讨论】:

  • @tahatmat:这不是重复的——这个问题是关于 getResource() 的,它在类路径上。

标签: java file relative-path


【解决方案1】:

它相对于您进程的当前工作目录来解析它。例如,您可以在 Eclipse 中指定运行配置。

基本上,您应该使用绝对文件名,或者确保从适当的目录运行它。 (您还没有指明如何从 jar 文件或脚本运行它...)

【讨论】:

    【解决方案2】:

    对于 java,相对路径是相对于您的工作目录的,即您开始应用程序的目录。您可以执行String current = new java.io.File( "." ).getCanonicalPath(); 之类的操作来找出它在哪里。

    通常,在 Eclipse 中,它是项目目录。

    【讨论】:

      【解决方案3】:

      你当前运行文件的目录是c://abc//xyz//yourRunningFile.

      那么您的文件的路径类似于c://abc//xyz//filename.txt

      这件事只有在你没有配置它并且如果你按照 Jon 所说的从 eclipse 配置的情况下才会发生,你可以定制它。

      【讨论】:

        猜你喜欢
        • 2014-01-30
        • 1970-01-01
        • 2017-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-26
        • 1970-01-01
        相关资源
        最近更新 更多