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

Scala加载resources目录下grammar.txt出现not found错误如何解决

问题原因

你的resources目录放置位置不符合sbt的默认约定,sbt标准的主项目资源目录默认是src/main/resources,你当前将grammar.txt放在了src/resources层级下,虽然配置了自定义资源目录,但大概率是配置未生效或者构建工具未同步配置导致资源找不到。

解决办法

方案一(推荐:遵循标准约定)

  1. 将src下的resources目录整体移动到src/main路径下,调整后目录结构如下:
.
├── build.sbt
├── src
│   ├── main
│   │   ├── resources
│   │   │   └── grammar.txt
│   │   └── scala
│   │       ├── Builer.scala
│   │       ├── Driver.scala
│   │       ├── tokens.scala
│   │       └── Tools.scala
  1. 删除build.sbt中Compile / unmanagedResourceDirectories += sourceDirectory.value / "resources"这行自定义配置,sbt默认会自动扫描src/main/resources下的资源文件,原有加载代码val source = Source.fromResource("grammar.txt")可直接正常运行。

方案二(保留现有目录结构)

如果不想调整目录位置,按以下步骤验证配置:

  • 执行sbt命令 show Compile / unmanagedResourceDirectories,检查输出结果中是否包含src/resources路径,如果没有则执行sbt reload重新加载配置
  • 执行sbt命令 show Compile / resources,检查输出列表中是否存在grammar.txt,如果不存在,检查文件名大小写、拼写是否和代码中一致(资源加载对大小写敏感)
  • 如果是在IDE中运行,手动触发sbt配置同步,清除IDE构建缓存后重新运行。

内容的提问来源于stack exchange,提问作者Node.JS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:54:04