加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala项目不会在Eclipse中编译; “无法找到主类 ”

发布时间:2020-12-16 09:42:48 所属栏目:安全 来源:网络整理
导读:我已经从/ update-current(这是Scala 2.8 final)安装了Eclipse 3.5.2和今天的Scala插件。我可以编译和运行由实现main()的单个单例对象组成的Scala项目。 但是,如果一个项目包含更多的类,我收到“找不到主类”的错误。 我已经尝试寻找解决方案,我发现: Ec
我已经从/ update-current(这是Scala 2.8 final)安装了Eclipse 3.5.2和今天的Scala插件。我可以编译和运行由实现main()的单个单例对象组成的Scala项目。

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

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

Eclipse正在寻找Main $类,而不是Main类
*在Debug Configurations下,我的主类被正确地标识为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
   }
}

但是,如果我在Hello中嵌套HelloFrame的定义,它可以工作。此片段运行完美:

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(未编译)。

构建可以成功完成时出现问题,即错误是固定的。

我猜,理论上来说,您的构建可能会更复杂,您的构建未成功完成,并未在“问题”中列出。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读