未检测到主要 class
No main class detected
问题是当我打开 "cmd.exe" 并进入名为 chesschallenge6 的目录输入 "sbt" 命令和 "run" 之后它不起作用。我收到一条错误消息,指出没有指定 main class。我检查了主 class 名称是否与其文件名相同,甚至尝试了 "object ChessChallenge6 extends App" 但它仍然没有用。解决方案很简单,但我就是看不到。
└── _chesschallenge6
├── _project
├── _target
└── _src
├── _test
└── _main
├── _algorithm
├── _model
└── ChessChallenge6.scala
你的问题有点不清楚。以下是我对错误的最佳猜测:
目录结构错误
请确保您的 scala 文件位于“src/main/scala/ChessChallenge6.scala
”中,相对于您 运行 sbt
.
所在的目录
我不确定您是否在目录名称中使用下划线,或者这是您仅在问题文本中使用的某种格式。如果您使用下划线,则需要将其删除(或配置 sbt
以在非标准目录中查找您的源代码)。
如果您不使用它们,则应将它们从问题文本中删除,因为它们会造成混淆。 (如果要区分列表中的文件和目录,通常的惯例是在目录名称的末尾添加“/”,例如“src/
”。)
见http://www.scala-sbt.org/0.13/docs/Directories.html
运行 sbt 在错误的目录中
您必须运行 sbt
在src
上面的目录中。在你的问题的最新版本中,那将在 chesschallenge6
目录中。
我确实遇到了这个问题,问题是我使用的是 class
而不是 object
。
例如,确保你的主要 class 不是这样的:
class ChessChallenge6 {
def main(args: Array[String]): Unit = {
println("hello")
}
}
相反,它应该是:
object ChessChallenge6 {
def main(args: Array[String]): Unit = {
println("hello")
}
}
注意第一个词是 object 而不是 class.
问题是当我打开 "cmd.exe" 并进入名为 chesschallenge6 的目录输入 "sbt" 命令和 "run" 之后它不起作用。我收到一条错误消息,指出没有指定 main class。我检查了主 class 名称是否与其文件名相同,甚至尝试了 "object ChessChallenge6 extends App" 但它仍然没有用。解决方案很简单,但我就是看不到。
└── _chesschallenge6
├── _project
├── _target
└── _src
├── _test
└── _main
├── _algorithm
├── _model
└── ChessChallenge6.scala
你的问题有点不清楚。以下是我对错误的最佳猜测:
目录结构错误
请确保您的 scala 文件位于“src/main/scala/ChessChallenge6.scala
”中,相对于您 运行 sbt
.
我不确定您是否在目录名称中使用下划线,或者这是您仅在问题文本中使用的某种格式。如果您使用下划线,则需要将其删除(或配置 sbt
以在非标准目录中查找您的源代码)。
如果您不使用它们,则应将它们从问题文本中删除,因为它们会造成混淆。 (如果要区分列表中的文件和目录,通常的惯例是在目录名称的末尾添加“/”,例如“src/
”。)
见http://www.scala-sbt.org/0.13/docs/Directories.html
运行 sbt 在错误的目录中
您必须运行 sbt
在src
上面的目录中。在你的问题的最新版本中,那将在 chesschallenge6
目录中。
我确实遇到了这个问题,问题是我使用的是 class
而不是 object
。
例如,确保你的主要 class 不是这样的:
class ChessChallenge6 {
def main(args: Array[String]): Unit = {
println("hello")
}
}
相反,它应该是:
object ChessChallenge6 {
def main(args: Array[String]): Unit = {
println("hello")
}
}
注意第一个词是 object 而不是 class.