【问题标题】:No main module initializer was specified (possibly because no or multiple main classes were found)没有指定主模块初始化器(可能是因为没有找到或找到多个主类)
【发布时间】:2018-04-29 16:18:58
【问题描述】:

使用以下项目结构:

项目/build.properties:

sbt.version = 1.1.4

项目/plugins.sbt:

addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.22")

build.sbt:

enablePlugins(ScalaJSPlugin)

name := "scalajs_example"

version := "0.1"

scalaVersion := "2.12.6"

和 src/main/scala/my/Main.scala:

package my

class Main {
  def main(args: Array[String]): Unit = {
    println("Hello world")
  }
}

执行sbt run时出现以下错误:

[错误] 没有指定主模块初始化程序(可能是因为没有 或找到多个主要类),但是 scalaJSUseMainModuleInitializer 设置为 true。您可以明确地 使用 mainClass := Some(...) 或使用 scalaJSMainModuleInitializer := Some(...) [错误] (编译/ scalaJSModuleInitializers) 未指定主模块初始化程序 (可能是因为没有找到或找到多个主类),但是 scalaJSUseMainModuleInitializer 设置为 true。您可以明确地 使用mainClass := Some(...) 或使用 scalaJSMainModuleInitializer := Some(...)

mainClass := Some("my.Main") 添加到build.sbt 并重新加载项目没有帮助,尝试sbt run 时仍然存在相同的错误(scalaJSMainModuleInitializer := Some(...) - 我无法弄清楚要放入... 的内容)。

【问题讨论】:

    标签: scala.js


    【解决方案1】:

    问题在于使用class Main 而不是object Main。更改后,它按预期工作:

    [info] Running my.Main
    Hello world
    

    无论是否明确指定mainClass(似乎指定一个无效的主类仍然会找到唯一的好类)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-17
      • 1970-01-01
      • 2021-07-22
      • 2018-11-01
      • 2012-08-10
      • 2021-07-09
      • 2018-06-26
      相关资源
      最近更新 更多