【发布时间】:2016-09-12 04:31:53
【问题描述】:
我正在学习 Scala,作为旅程的一部分,我遇到了两种不同的方式来编写你的 scala 类 - 一种使用 main 方法,另一种没有 main 方法,但通过扩展 App(之前的 Application 由于并发问题,已弃用)。
我正在通过scala 以scala <nameOfScript>.scala 执行命令行中的脚本。我在 Windows 中运行 Scala 2.11.7。
使用 main 方法运行 scala 脚本/类时没有问题。
object ObjectWithMainMethod {
def main(args:Array[String]) = {
println("Object with a main() method executed..")
}
}
它产生以下输出。
Object with a main() method executed..
但是,我没有得到与其对应的输出,它扩展了 App 特征但没有 main 方法。
object AppWithoutMainMethod extends App {
println("AppWithout main() method executed")
}
当我运行这个 scala 脚本时,它不会打印任何东西。但是,当我通过 javap 实用程序查看编译的 .class 文件时,我可以看到里面的 PSVM(公共静态 void main() 方法)。
我错过了什么吗?对此的任何帮助将不胜感激。
【问题讨论】:
-
“当我运行这个 scala 脚本时” - 如何 你是如何运行这个的?代码看起来不错,所以问题可能在于执行......
-
@TzachZohar,我在命令行上使用“scala”可执行文件作为
scala AppwithoutMainMethod.scala运行它