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

Scala3运行scala hello.scala报错无法找到或加载主类hello.scala如何解决?

Scala 3 运行独立 .scala 文件报错解决方案

错误原因

该报错本质是scala命令将传入的hello.scala识别为待执行的类名,而非待解析运行的源文件,因此抛出类找不到异常。

完整报错信息:

Error: Could not find or load main class hello.scala
Caused by: java.lang.ClassNotFoundException: hello.scala

排查&解决步骤

  • 第一步:确认Scala版本是否为Scala 3
    执行scala -version查看输出,仅Scala 3原生支持直接运行未编译的.scala源文件,若为Scala 2版本,需要先通过scalac hello.scala编译生成.class文件,再执行scala hello(不带.scala后缀)运行。
  • 第二步:清理目录下的同名编译产物
    若当前目录下已经存在提前编译生成的hello.class文件,scala命令会优先尝试加载类而非解析源文件,删除该.class文件后重新执行scala hello.scala即可。
  • 第三步:检查文件内容与对应执行方式
    1. 脚本式写法(无object、无主方法声明,直接写顶层执行代码):直接执行scala hello.scala即可运行
    2. 带@main注解的主方法写法:
      示例代码:
      @main def hello() = println("Hello Scala 3")
      
      可以直接执行scala hello.scala,也可以先执行scalac hello.scala编译后,运行scala hello(不带后缀)
    3. 兼容Scala 2的extends App写法:
      示例代码:
      object hello extends App {
        println("Hello Scala")
      }
      
      执行方式和@main写法完全一致。
  • 第四步:检查文件名合法性
    Windows环境下需确认系统没有隐藏文件后缀,避免实际文件名为hello.scala.txt;同时注意类名和文件名的大小写匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:54:05