【问题标题】:Problems compiling and running Scala projects in IntelliJ Idea在 IntelliJ Idea 中编译和运行 Scala 项目的问题
【发布时间】:2019-03-25 19:28:43
【问题描述】:

我已经安装了带有 Scala 插件的最新 IntelliJ Idea 版本。我用 IDE 创建了一个 SBT Scala 项目。 不幸的是,即使是最简单的“Hello World”示例,我也无法编译或运行。

object Main {
    def main(args: Array[String]): Unit ={
        val x: Int = 5
        println("Hello Scala!")
        println(x)
    }
}

如果我尝试运行它,它会显示“错误:找不到主类 Main”。 重建项目没有帮助。

但是,如果我运行“sbt”终端程序并执行“run”,一切运行正常。更重要的是,它编译必要的类文件,以便 IntelliJ Idea 能够在这一步之后运行它。 但是,每当我更改代码中的某些内容并尝试从 Idea 重建它时,它都会像以前一样失败。

编辑:在 Eclipse 中一切正常。

更新

如果我尝试从 sbt shell 执行“编译”,然后使用 IDE 执行“运行”,它会起作用。但是,在执行“Build”或“Rebuild Project”时它不会这样做。有时,但不幸的是并不总是 sp 能够重现它,它会给我一个异常“无法初始化类 sbt.internal.io.Milli$”

第二次更新:

我进一步简化了任务。现在我有类似下面的截图:

Screenshot IntelliJ IDEA

第三次更新:

我的部署中有两个错误。其中之一是,正如之前所指出的,存在一些包定义问题。所有的源代码都应该依赖于 src/main/scala,但这还不够。为了使用SBT结构进行构建,我不得不去 文件 -> 设置 -> 构建、执行、部署 -> 构建工具 -> sbt 并选中“使用自动导入”和“使用 sbt shell 进行构建和导入”。

之后,一切运行正常。最后!

非常感谢大家提供有用的意见!

【问题讨论】:

  • 尝试关闭项目,删除.idea文件夹并打开项目
  • 感谢您的建议,但不幸的是它没有奏效。它给了我同样的错误。
  • 我上传了一张图片。我的知名度不够高,无法嵌入文字中,所以有一个链接。

标签: scala intellij-idea sbt


【解决方案1】:

在您的screenshot 上,Runner 的包装有误。它写成package main.scala。 如果Runner.scalasrc/main/scala/way/to/my/package 中,包声明应该是package way.to.my.package(如果它只是在src/main/scala 中,则不应有package ... 行)。

如果仍然有必要,您也可以尝试(从应该首先尝试的内容到应该最后尝试的内容,如果之前尝试过的事情没有帮助)

  • sbt clean
  • 将项目重新导入 IntelliJ IDEA
  • File -> Invalidate Caches / Restart ...
  • 删除项目文件夹的.idea子文件夹

【讨论】:

  • 谢谢,确实与类似的事情有关!将我的代码放入 main/scala 并修复包声明后,现在一切似乎都正常了。
【解决方案2】:

您是否尝试过“object Main”附近的绿色箭头? 这应该启动程序。

【讨论】:

  • 感谢您的评论。我试过了,但没有用,和以前一样的错误。我更新了添加 IntelliJ 屏幕截图的问题。
猜你喜欢
  • 2021-11-29
  • 1970-01-01
  • 2020-07-05
  • 1970-01-01
  • 2017-07-17
  • 1970-01-01
  • 2015-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多