You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Eclipse运行Java项目时路径与其他成功项目一致却无法读取文件怎么办?

Mac端Eclipse Java项目相对路径读取文件失败解决方案

核心原因

使用无路径前缀的文件名直接创建FileReader时,Java默认从JVM启动的工作目录查找目标文件。Eclipse中每个项目的默认工作目录为项目根文件夹,不同项目的工作目录相互独立,即便文件路径写法完全一致,也会因为查找根目录不同触发文件找不到异常。

验证方法

在代码中加入以下内容打印当前项目的实际查找根目录,确认路径差异:

System.out.println(System.getProperty("user.dir"));

可行解决方案

  • 方案1:将crimedata-full-month.csv文件放到上述打印出的工作目录下,原有代码无需修改即可正常读取。
  • 方案2:使用绝对路径指定文件位置,Mac系统下绝对路径格式示例:
// 替换为你自己的文件实际存放路径
String fileName = "/Users/你的用户名/Documents/crimedata-full-month.csv";
FileReader file = new FileReader(fileName);
Scanner scan = new Scanner(file);
  • 方案3:将文件放在项目类路径下,用类加载器读取,彻底规避不同项目工作目录差异问题:
// 非Maven项目将csv放在src目录下,Maven项目放在src/main/resources目录下
InputStream is = Crimes.class.getClassLoader().getResourceAsStream("crimedata-full-month.csv");
// 注意检查文件是否存在的判空逻辑
if (is == null) {
    throw new RuntimeException("未找到类路径下的目标csv文件");
}
Scanner scan = new Scanner(is);

额外注意:如果用方案3依旧读取失败,右键当前项目选择Properties->Java Build Path->Source,检查对应资源目录的Excluded规则,确认没有屏蔽.csv后缀的文件。

内容的提问来源于stack exchange,提问作者Stoiccowboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:15:05