【问题标题】:Could not find or load main class in scala in intellij IDE无法在 intellij IDE 的 scala 中找到或加载主类
【发布时间】:2017-10-25 02:45:02
【问题描述】:

我已经搜索过这个错误,但答案是针对 Java 的, 但我的案例是 Scala。我正在尝试在 IntelliJ IDE 中运行这个项目 sentimenAnalysis,但它会引发错误。这也是项目的结构。 Class Not found

更新1根据答案,在搜索类名称的末尾添加$

Update 2 添加 sbt 任务后:

更新 3 我的问题是通过导入项目解决的,而不是直接从 GitHub 获取,可能是 Mike Allen 说的手动配置可以解决问题,但我无法成功应用。

【问题讨论】:

    标签: scala intellij-idea sbt


    【解决方案1】:

    可能您导入的项目有些错误。我看到 scala 文件夹没有突出显示为源。 通常,您甚至不需要为 Scala SBT 项目手动设置运行配置。 你的 IDE 中有 Scala 和 SBT 插件吗?

    您应该通过“导入项目”打开 SBT 项目并选择“build.sbt”文件。我还建议启用自动导入以安装所有依赖项。

    这就是我的样子:

    如果您仍想手动进行,您的配置应该可以工作。这是我的运行配置:

    【讨论】:

    • 谢谢你的回答,其实我是通过github打开项目的,这样可以吗?
    • 所以你的项目配置错误。您可能可以手动修复它。但更容易的是,正如我所说的从你克隆它的路径中导入它
    • 但我在菜单文件中没有“导入项目”
    • 关闭您当前的项目。您将在 IntelliJ IDEA 启动窗口中看到它
    • 当我导入它的时候感觉很奇怪,当我只使用 github 时它不能带来配置并引发错误,无论如何非常感谢您的时间帮助和努力
    【解决方案2】:

    创建一个新项目并确保 SBT 与 Scala 库一起正确加载。这种情况经常发生,糟糕的互联网连接或 Scala 库/SBT 加载失败可能是其中的一些原因。 祝下一个项目好运,祝开发人员和编码人员愉快。

    【讨论】:

      【解决方案3】:

      在我的情况下,object MyObject extends App 中的 object 是嵌套的,如果您在 scala 文件中有未嵌套的含义,则它不在任何其他使其工作的对象下。

      Netsted 在 intellij 中导致了这个错误:

      object External {
        object MyMain extends App // Could not find or load main class in scala in intellij IDE
      
      }
      

      虽然以下未嵌套的工作:

      object External { }
      object MyMain extends App // Worked!
      

      【讨论】:

        【解决方案4】:

        当我将 src 文件夹标记为源根目录时,我的问题得到了解决。单击 src 文件夹中的右键 -> 将目录标记为 -> 源根目录

        【讨论】:

        • 这对我来说可以消除错误,但随后它开始显示 的不同错误已定义为 。然后我关注stackoverflow.com/a/27352057/3209170 并从源根目录中删除了 src 并且它起作用了。不知道为什么,但如果有人是初学者并且卡住了,试试这个。
        • 为我工作。第一次删除 scala 文件夹作为源根目录,第二次将 src 文件夹作为源根目录,运行 build
        【解决方案5】:

        如果您尝试打开项目并错误地导入它,您将收到此错误。我会在 Intellij 中打开这样的项目:

        File>New> Project from Existing Source>(select) Import project from external model>
        (select)sbt
        
        click Next>Finish
        

        【讨论】:

          【解决方案6】:

          您好,我通过在 main 下的 src 包中定义类并将配置设置为默认值解决了这个问题。

          【讨论】:

            【解决方案7】:

            我遇到了同样的问题,请检查整个执行命令并检查配置,确保编译文件路径配置正确。 参考我的截图:

            【讨论】:

              【解决方案8】:

              为了在我的项目中解决这个问题,我使缓存无效并重新启动:

              【讨论】:

              • 令人惊讶的是这对我有用,确保在索引完成后运行built.sbt sync。
              猜你喜欢
              • 2018-07-21
              • 1970-01-01
              • 1970-01-01
              • 2018-10-19
              • 2019-07-16
              • 2017-11-06
              • 2021-12-07
              • 2018-11-24
              • 1970-01-01
              相关资源
              最近更新 更多