Scala IDE错误:在课程中找不到主要方法'你好'

时间:2017-05-25 20:03:29

标签: java eclipse scala ide scala-ide

我刚开始在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开发的。

任何帮助将不胜感激。谢谢。

5 个答案:

答案 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。

将对象或类重命名为其他名称可以解决此问题。