我刚开始在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函数?为什么在代码没有问题时抛出错误(据我所知)?我尝试在现有问题上寻找答案,但没有一个是关于scala开发的。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:6)
你的主要必须采用一串字符串。它目前需要一个字符串
来自scala的官方网站:
object HelloWorld {
def main(args: Array[String]): Unit = {
println("Hello, world!")
}
}
https://www.scala-lang.org/documentation/getting-started.html
另外,请确保您在Eclipse中使用“作为Scala应用程序运行”选项。
答案 1 :(得分:1)
您有在测试中具有相同名称的课程。
检查您的测试文件夹中是否不包含object hello.
检查您的测试包中的唯一对象名称。
重命名后,必须解决问题。
如何实现main
方法没有区别。您可以这样:
object hello {
def main(args: String) = {
println("Hello World!");
}
}
或者这样:
object hello extends App {
println("Hello World!");
}
```
答案 2 :(得分:0)
这可能对每个人都没有帮助,但我确实遇到了同样的问题,我清理了项目并且工作正常!
答案 3 :(得分:0)
对于我的情况(Intellij Ultimate 2018.1),我使用主方法进行了与对象名称相同的测试:
src/main/scala/com/xx/xx/MyApp
src/test/scala/com/xx/xx/MyApp
当尝试对main进行dun ... MyApp失败,但出现此问题。
只需将src/test/scala/com/xx/xx/MyApp
重命名为MyAppTest
答案 4 :(得分:0)
就我而言,我既有一个同伴对象又有一个同名的类,这在Scala中通常可以,但似乎混淆了Java。
将对象或类重命名为其他名称可以解决此问题。