【问题标题】:Error: Could not find or load main class Main Scala错误:无法找到或加载主类 Main Scala
【发布时间】:2018-03-30 20:53:45
【问题描述】:

我最近在函数式编程课程中安装了 Scala,但遇到了一个问题:IntelliJ IDEA 2017.2.1(Java 版本 9,内部版本 9+181)无法运行我的任何 scala 代码,退出

错误:无法找到或加载主类 Main

此代码是一个示例。

object Main {
  def length[A](list:List[A]):Int = {
    if (list == Nil) 0
    else 1 + length(list.tail)
  }

  def main(args: Array[String]): Unit = {
    length(List[Int](1, 4, 5, 12, -1))
  }
}

这真的很简单,但 IntelliJ 拒绝运行它。 Windows CMD 甚至不响应 scala 命令,导致

'scala' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

即使我已将它安装在我的计算机上。如果我在 IntelliJ 中调用 Scala 控制台,一切正常并按预期编译。我尝试在 IntelliJ 中切换到 JDK 1.8,但没有结果。

可能是什么问题?

【问题讨论】:

  • 你在 IntelliJ 中安装了 scala 插件吗?至于无法运行scala命令,听起来好像你的PATH变量中没有设置scala编译器
  • 是的,我肯定安装了 intellij 插件。您能否具体说明一下“未在 PATH 变量中设置 scala 编译器”是什么意思?
  • en.m.wikipedia.org/wiki/PATH_(variable) - 本质上,它是操作系统查找程序运行的位置列表。当您在 CMD 中键入“scala”时,它会查看 scala 是否在这些位置中的任何一个。因此,您需要找到安装 scala 的位置,并将其添加到该列表中

标签: scala intellij-idea


【解决方案1】:

您是否使用绿色小箭头从 Main 对象内部运行程序?

您是如何创建程序的?可能是您的 build 文件 SBT 配置项目与您计算机上安装的 Scala 版本不同。

这真的很简单,但 IntelliJ 拒绝运行它。窗口命令 甚至不响应 scala 命令,导致

'scala' is not recognized as an internal or external command, operable program or batch file.

这意味着 Scala 没有添加到终端的类路径中。查看如何做到这一点,看看这是否也不能帮助您解决 IntelliJ 问题。

【讨论】:

    【解决方案2】:

    对我来说,事实证明src/main 没有标记为Sources Root 导致以下错误

    ...
    One of the two will be used. Which one is undefined.
    Error: Could not find or load main class Main
    
    Process finished with exit code 1
    

    当然,在我将src/main 标记为Sources Root 之后,Scala Hello World 示例再次运行良好。

    注意目录src/main 标记为Sources Root 时的蓝色

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2019-07-16
      • 1970-01-01
      相关资源
      最近更新 更多