我是Scala的新手,我之前从未编写或编译过程序。我试图简单地运行以下Hello World示例,我将其保存在文件名scalaApp.scala中
object scalaApp extends App {
def main(args: Array[String]) {
println("Hello, world!")
}
}
当我进入文件目录中的终端并键入" scalac scalaApp.scala"时,收到以下错误消息:
scalaApp.scala:4: error: overriding method main in trait App of type (args: Array[String])Unit;
method main needs `override' modifier
def main(args: Array[String]) {
^
one error found
我以为我按照所有指示在我的计算机上正确安装Scala 2.10.3,但我不知道如何测试它,因为我甚至无法编译这个简单的程序。如果我输入" scala"进入终端我得到一个scala提示符,我可以在其上运行命令,如" 1 + 1"。我不知道有多少节目。我已将SCALA_HOME变量添加到〜/ .profile,并将SCALA_HOME添加到〜/ .profile中的PATH变量中。如果有人能告诉我我做错了什么,或者给我一个关于我可能找到答案的建议,我会很感激。
答案 0 :(得分:16)
自App
extends DelayedInit
以来,您不应该定义main
函数
这应该足够了:
object scalaApp extends App {
println("Hello, world!")
}
编译器为您创建此函数,并将其传递给delayedInit(x: => Unit)
方法(注意call-by-name in the parameter)。
编译器将发出:
object Main extends DelayedInit {
def delayedInit(x: => Unit = { println("Hello, worl!") }) = // impl is left for us to fill in
}
答案 1 :(得分:0)
编译.jar文件时,遇到错误。
spark-submit-2.2 sequential-assembly-1.0.0-SNAPHOST.jar
Error: No main class set in JAR; please specify one with --class
然后我将我的代码添加到
object getdata{
def main(args: Array[String])={
println("Hello World")
}
}