2015-07-04 128 views
0

這是我的Scala代碼:無法甚至編譯後運行程序階它

object world 
{ 
    println("this is vaibhav") 
} 

我能夠使用scalac編譯它。

scalac object.scala 

和這兩個文件生成:

world.class,world$.class 

但是當我運行此:

scala world 

它給人的follwing消息:

java.lang.NoSuchMethodException: world.main([Ljava.lang.String;) 
    at java.lang.Class.getMethod(Class.java:1670) 
    at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:74) 
    at   scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:101) 
at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:33) 
at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:40) 
at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:56) 
at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:80) 
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:89) 
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) 
+1

你沒有主要方法。所以它找不到你的程序的入口點。 –

回答

2

斯卡拉有幾種不同的方式。一個使用物體:

object HelloWorld extends App { 
    println("Hello World: " + (args mkString ", ")) 
} 

請注意extends App那裏。關於這個,請參閱documentation

另一個使用對象的main字段:

object HelloWorld { 
    def main(args: Array[String]) { 
    println("Hello, world!") 
    } 
} 

一些documentation有關。

1

作爲Java計劃需要一個public static final main(String[] args) {}會見要執行,Scala需要在你的對象中有一個def main(args: Array[String]) {}

0

您將不可能直接使用Scala編譯器(scalac)來構建和管理任何真正的Scala項目。如果你從Scala開始,我會建議如下:

  1. 使用構建工具,如sbt,將爲您管理的依賴項和版本。
  2. 使用IDE(IntelliJ/Eclipse
相關問題