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即可。 - 第三步:检查文件内容与对应执行方式
- 脚本式写法(无object、无主方法声明,直接写顶层执行代码):直接执行
scala hello.scala即可运行 - 带
@main注解的主方法写法:
示例代码:
可以直接执行@main def hello() = println("Hello Scala 3")scala hello.scala,也可以先执行scalac hello.scala编译后,运行scala hello(不带后缀) - 兼容Scala 2的
extends App写法:
示例代码:
执行方式和object hello extends App { println("Hello Scala") }@main写法完全一致。
- 脚本式写法(无object、无主方法声明,直接写顶层执行代码):直接执行
- 第四步:检查文件名合法性
Windows环境下需确认系统没有隐藏文件后缀,避免实际文件名为hello.scala.txt;同时注意类名和文件名的大小写匹配。
内容的提问来源于stack exchange,提问作者VaidAbhishek
相关产品推荐
相关产品推荐

