【问题标题】:Different relative file path during execution in Eclipse and Java在 Eclipse 和 Java 中执行期间不同的相对文件路径
【发布时间】:2018-01-24 02:50:23
【问题描述】:

我已经实现了一个 Java 类,它通过相对路径处理 .txt 格式的文件。它在 Eclipse 中执行期间运行良好。 但是,如果我在 Eclipse 之外的 Java JRE 中执行(未更改的)编译文件,我会得到 java.io.FileNotFoundException。

我实现了new File(".").getCanonicalPath(),找到了问题的根源:

在 Eclipse 中执行我得到返回:C:\Users\xy\git\Project\Project

在 Java 8 JRE 中执行我得到返回:C:\Users\xy\git\Project\Project\bin

我想到了一种解决方法,但为开发和部署处理两个不同的代码版本对我来说似乎是不必要的错误来源。

所以我的问题是如何解决这个问题。我希望提示如何重新配置​​ Eclipse。

提前致谢 Threx

【问题讨论】:

标签: java eclipse configuration path


【解决方案1】:

有很多方法:

  1. 不要将文本文件放在 /bin 中,指向另一个更静态的路径
  2. 将文件加载到类路径中
  3. 结合使用 System.getProperties("user.dir") 和 if-else 语句
  4. 使用maven,参考:Maven add properties file to jar file

【讨论】:

    【解决方案2】:

    解决办法在于调整Eclipse的配置。

    运行不足 |运行配置... |幻灯片参数有条目“工作目录”。默认情况下,它设置为 ${workspace_loc: ProjectName}。将其更改为 ${workspace_loc:ProjectName/bin} 后,java.io.FileNotFoundException-warnings 消失了,一切都按预期工作。

    现在 Eclipse 和 Eclipse 之外的 JRE 使用相同的路径,不需要更多带有变通方法的冗余代码。

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-06
      • 2012-01-28
      • 2013-10-29
      相关资源
      最近更新 更多