没有检测到主类

时间:2017-04-26 11:25:55

标签: scala class sbt main runtimeexception

问题是,当我打开“cmd.exe”并进入名为chesschallenge6的目录进入“sbt”命令并且之后“运行”它不起作用。我收到一条错误消息,指出没有指定主类。我检查了主类名是否与其文件名相同,甚至尝试过“对象ChessChallenge6扩展App”,但它仍然无法正常工作。解决方案很简单,但我只是看不到它。

└── _chesschallenge6
    ├── _project
    ├── _target
    └── _src      
        ├── _test
        └── _main
            ├── _algorithm
            ├── _model
            └── ChessChallenge6.scala

2 个答案:

答案 0 :(得分:3)

你的问题有点不清楚。以下是我对错误的最佳猜测:

目录结构错误

请确保您的scala文件位于" src/main/scala/ChessChallenge6.scala",相对于您运行sbt的目录。

我不确定您是否在目录名中使用下划线,或者这是您在问题文本中仅使用的某种格式。如果您使用下划线,则需要将其删除(或配置sbt以查找源的非标准目录。)

如果您不使用它们,则应将它们从问题文本中删除,因为它们令人困惑。 (如果要区分文件与列表中的目录,通常的惯例是将" /"添加到目录名称的末尾,例如" src/" 。)

请参阅http://www.scala-sbt.org/0.13/docs/Directories.html

在错误的目录中运行sbt

您必须在sbt上方的目录中运行src。在您的问题的最新版本中,这将在chesschallenge6目录。

答案 1 :(得分:2)

我遇到了这个确切的问题,问题是我使用的是class而不是object

例如,确保您的主类不是这样的:

class ChessChallenge6 {

  def main(args: Array[String]): Unit = {
    println("hello")
  }

}

它应该是:

object ChessChallenge6 {

  def main(args: Array[String]): Unit = {
    println("hello")
  }

}

请注意,第一个单词是 object ,而不是 class