Java Scala错误:无法在Scala IDE和Eclipse中找到或加载主类

Java Scala错误:无法在Scala IDE和Eclipse中找到或加载主类,java,eclipse,scala,apache-spark,scala-ide,Java,Eclipse,Scala,Apache Spark,Scala Ide,这是我的问题,我知道类似的问题有很多答案,但是在我尝试之后,没有一个有效。我同时使用ScalaIDE4.6和EclipseOxygen来运行代码,但都失败了 以下是我的scala编译器配置: 以下是我的跑步配置: 以下是我在控制台中显示的代码、文件结构和错误: 以下是信息问题控制台: 从在线回答中,我已经尝试在构建之前清理项目,我还尝试了JVM和Scala编译器的所有版本,所有这些都没有帮助 代码是直接从在线课程代码导入的,因此我相信代码中不应该有任何错误。我认为这应该是您的文件夹结构 Scal

这是我的问题,我知道类似的问题有很多答案,但是在我尝试之后,没有一个有效。我同时使用ScalaIDE4.6和EclipseOxygen来运行代码,但都失败了

以下是我的scala编译器配置:

以下是我的跑步配置:

以下是我在控制台中显示的代码、文件结构和错误:

以下是信息问题控制台:

从在线回答中,我已经尝试在构建之前清理项目,我还尝试了JVM和Scala编译器的所有版本,所有这些都没有帮助


代码是直接从在线课程代码导入的,因此我相信代码中不应该有任何错误。

我认为这应该是您的文件夹结构

Scala0
└── src
    └── main
        └── scala
            └── com.ks.sparkscala
                └── FriendsByAge
在您的例子中,在src中创建一个main/scala文件夹,并在其中复制包

请遵循项目结构

Scala0
└── src
    └── main
        └── scala
            └── com.ks.sparkscala
                └── FriendsByAge

我希望这有帮助

对于Intellij IDE,请使用以下过程:

转到窗口右上方的下拉列表并选择编辑配置

在弹出屏幕上,选择左侧的Scala console,在右侧的模块使用类路径和SDK下选择您的模块名称


在eclipse->project properties->scala编译器-->中更改scala安装


它对我有效。

据我所知,您的包结构是com.ks.sparkscala,它与Friendsbage.scala、com.sundogsoftware.spark中声明的包结构不同
希望这有帮助。

我也有类似的问题。我无法在IJIdea IU-182.4892.20/Scala 2.13 for.Scala文件中找到或加载具有以下结构的主类:

package ...

import ...

object Main extends App {
...
}

//other traits, classes, objects

但是,当我将//其他特征、类和对象移动到同一个包中单独的.scala文件时,我的问题得到了解决。

我遇到了相同的错误消息,下面的解决方案对我有效:

右键单击项目。 点击Scala。 选择“设置scala安装”选项。 选择我选择的Scala安装固定Scala安装:2.10.6绑定。 在此之后,它运行正常,没有给出错误消息。

另一个解决方案。 我在Scala+SBT项目中遇到了类似的问题

我是如何解决这个问题的:

通过SBT运行我的项目,如下所示:SBT我的项目/运行 按Ctrl+C组合键停止 运行调试-它再次工作。
要解决这个问题,我需要做很多事情,我认为每一件都很重要

确保有问题的scala文件位于src文件夹中。 如果内部类/对象是对象,请确保它是对象。 确保文件名和类/对象名相同。 以下说明适用于IntelliJ

如果1不是真的,下面是修复它的最简单方法:

单击并将文件拖动到IntelliJ中的src文件夹中。对任何重构都说“是”。 如果2或3不正确,以下是最简单的修复方法:

复制代码CTRL+A、CTRL+C 右键单击src文件夹并选择New Scala类 键入类/对象的名称 如果文件将包含顶级对象而不是顶级类,请选择Object 按ENTER键或选择相应的确认按钮 粘贴你的代码CTRL+A,CTRL+V; 结果: 现在,在src文件夹中应该有一个名为YourClass.scala的文件,如果它是对象,则应该有一个橙色图标。文件名应与顶级类/对象的名称匹配。
您应该能够右键单击它并运行它。然后,在你这样做之后,你应该可以只按右上角的播放按钮。它应该会起作用。

对于IntelijIDEA的参考,我想您可能会使用scala插件,在这种情况下,上述问题有一个解决方案:

错误:无法在两个Scala IDE中找到或加载主类

尝试重新导入项目并覆盖.idea目录,因为作为现有项目导入时会提示覆盖.idea配置。希望能解决这个问题


仅供参考,这是一个尚未解决的问题

我想您的项目树结构是错误的。应该是ScalaO/src/main/scala/com/ks/sparkscala/FriendsByAge.scalaSo如何修改项目结构?@Ramesh maharjanc在src目录中创建那些目录:main和scala,然后在其中复制包。那应该行得通,行得通。非常感谢。@Ramesh Maharjanmy很高兴:为了解决这个问题,您可以接受@Shankar下面的回答:我觉得我高兴得太早了。当我导入另一个scala文件Scala0/src/main/scala/com/ks/sparkscala/other.scala时,同样的问题再次发生。Ps:这个scala文件在scala对象中有它自己的主函数。@Shankar Koirala刚刚拼错了问题,很抱歉再次打扰您。我已经接受了你的回答~:@Shankar KoiralaThank你!在我的例子中,我尝试在ExtendApp类中创建自己的monad类型。我移动了类t的整个实现 o另一个类,只留下测试逻辑,一切都开始工作。