eclipse - Scala 项目不会在 Eclipse 中编译; "Could not find the main class."

标签 eclipse scala eclipse-plugin scala-ide

我已经从/update-current 安装了 Eclipse 3.5.2 和今天的 Scala 插件(这是 Scala 2.8 final。)我可以编译和运行由实现 main() 的单个单例对象组成的 Scala 项目。

但是,如果项目包含更多类,我会收到“找不到主类”错误。

我尝试寻找解决方案,我发现:

Eclipse 正在正确查找 Main$ 类,而不是 Main 类
* 在调试配置下,我的主类被正确识别为 mypackage.Main
* 我的插件是最新的,推荐用于我的 Eclipse 版本
* 清理、重启等无济于事。

同一个项目将使用 scalac 进行编译。

感谢您提供有关如何解决此问题的任何想法。

编辑:MatthieuF 建议我应该发布代码。

此代码段产生错误。这不是最惯用的代码,但我以这种方式编写它来测试我的环境。我将它作为单个文件和单独的文件进行了尝试。它确实适用于 scalac。

import swing._

class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
}

object Hello {
  val frame = new HelloFrame    
  def main(args : Array[String]) : Unit = {
        frame.visible = true
   }
}

但是,如果我将 HelloFrame 的定义嵌套在 Hello 中,它就可以工作。这段代码完美运行:
import swing._

object Hello {

    class HelloFrame extends Frame {
        title = "First program"
        contents = new Label("Hello, world!")
    }

    val frame = new HelloFrame

    def main(args : Array[String]) : Unit = {
        frame.visible = true
    }
}

最佳答案

对我来说,问题是存在阻止编译的构建错误(请参阅问题选项卡);哎呀!您看到错误的原因是尽管编译步骤失败,但运行宏仍在继续,并尝试运行它期望在那里的类文件;它们不存在,因为存在阻止编译的构建错误,所以它说它找不到 Main(未编译)。

当构建可以成功完成时,问题就会消失,即错误被修复。

我想,从理论上讲,您的构建未成功完成可能有更复杂的原因未在问题中列出。

关于eclipse - Scala 项目不会在 Eclipse 中编译; "Could not find the main class.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3953468/

相关文章:

java - 如何更改eclipse中注释的层次结构?

android - 模拟被拒绝的调用android-eclipse indigo

java - 在linux下编译的Eclipse插件可以在windows上工作吗?

java - eclipse插件maven生成的jar不包含类

java - 将数组中的双空格替换为单空格

C# 迁移到 Java,只需要知道一些事情

java - 玩框架,你如何在客户端访问cookie(javascript)?

scala - 在 Scala 中合并多个案例(匹配/案例)

java - Akka 消息顺序

android - 我安装了Eclipse ADT,没有任何错误消息,但重新启动后,我看不到任何Android插件