Scala IDE Error: Main method not found in class 'hello'
Scala IDE Error: Main method not found in class 'hello'
我刚刚开始在 Scala IDE(Eclipse) 上进行 Scala 开发。我正在尝试创建一个新项目并编写一个示例 hello world 程序来启动它。这是我的示例程序:
object hello {
def main(args: String) = {
println("Hello World!");
}
}
我正在使用 Java 8. 我没有看到程序中有任何错误。但是,当我尝试 运行 程序时,出现如下错误:
Error: Main method not found in class hello, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
我现在一头雾水。为什么要我用 Java 语法创建一个 main 函数?为什么当代码没有问题时它会抛出错误(据我所知)?我尝试搜索现有问题的答案,但 none 其中与 scala 开发有关。
如有任何帮助,我们将不胜感激。谢谢。
您的 main 必须采用字符串数组。目前需要一个字符串
来自scala官网:
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}
https://www.scala-lang.org/documentation/getting-started.html
此外,请确保您在 Eclipse 中使用 "run as Scala application" 选项。
这可能对每个人都没有帮助,但我确实遇到了同样的问题,我清理了项目并且成功了!!!
在我的例子中(Intellij Ultimate 2018.1),我有一个与 main 方法的对象同名的测试:
src/main/scala/com/xx/xx/MyApp
src/test/scala/com/xx/xx/MyApp
当尝试催促 main...MyApp 失败,出现此问题中的异常。
刚刚将 src/test/scala/com/xx/xx/MyApp
重命名为 MyAppTest
您在测试中有 一个 class 具有相同的名称。
检查您的测试文件夹是否不包含 object hello.
检查您的测试包是否有唯一的对象名称。
重命名后,问题必须解决
main
方法的实现方式没有区别。你可以这样做:
object hello {
def main(args: String) = {
println("Hello World!");
}
}
或者像这样:
object hello extends App {
println("Hello World!");
}
```
在我的例子中,我有一个伴生对象和一个同名的 class,这在 Scala 中通常没问题,但似乎混淆了 Java。
将对象或 class 重命名为其他名称解决了问题。
我刚刚开始在 Scala IDE(Eclipse) 上进行 Scala 开发。我正在尝试创建一个新项目并编写一个示例 hello world 程序来启动它。这是我的示例程序:
object hello {
def main(args: String) = {
println("Hello World!");
}
}
我正在使用 Java 8. 我没有看到程序中有任何错误。但是,当我尝试 运行 程序时,出现如下错误:
Error: Main method not found in class hello, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
我现在一头雾水。为什么要我用 Java 语法创建一个 main 函数?为什么当代码没有问题时它会抛出错误(据我所知)?我尝试搜索现有问题的答案,但 none 其中与 scala 开发有关。
如有任何帮助,我们将不胜感激。谢谢。
您的 main 必须采用字符串数组。目前需要一个字符串
来自scala官网:
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}
https://www.scala-lang.org/documentation/getting-started.html
此外,请确保您在 Eclipse 中使用 "run as Scala application" 选项。
这可能对每个人都没有帮助,但我确实遇到了同样的问题,我清理了项目并且成功了!!!
在我的例子中(Intellij Ultimate 2018.1),我有一个与 main 方法的对象同名的测试:
src/main/scala/com/xx/xx/MyApp
src/test/scala/com/xx/xx/MyApp
当尝试催促 main...MyApp 失败,出现此问题中的异常。
刚刚将 src/test/scala/com/xx/xx/MyApp
重命名为 MyAppTest
您在测试中有 一个 class 具有相同的名称。
检查您的测试文件夹是否不包含 object hello.
检查您的测试包是否有唯一的对象名称。
重命名后,问题必须解决
main
方法的实现方式没有区别。你可以这样做:
object hello {
def main(args: String) = {
println("Hello World!");
}
}
或者像这样:
object hello extends App {
println("Hello World!");
}
```
在我的例子中,我有一个伴生对象和一个同名的 class,这在 Scala 中通常没问题,但似乎混淆了 Java。
将对象或 class 重命名为其他名称解决了问题。