2016-11-27 68 views
1

我使用下面的代碼片段(在scala-2.11.8中)使對象成爲可執行程序。但是當我遷移了2.12.0的scala版本時,它不起作用。它拋出錯誤來實現一些不推薦使用的方法。Main擴展scala.App升級到scala 2.11.0後無法工作2.12.0

object Main extends App { 
    Console.println("Hello World ") 
} 

由於delayedInit方法發生了變化,我將如何繼續使用App特徵將我的對象設置爲可執行文件。

問:如何讓我的對象爲可執行的斯卡拉2.12.0

更新:使用理念14時使用Scala插件 做工精細Scala的REPL終端面對這個問題

+0

@Jwvh - 我提到這個鏈接。 http://www.scala-lang.org/files/archive/api/2.12.0/scala/App.html –

+0

我只建議刪除'Console'部分,因爲它不是必需的。您的代碼編譯並運行良好,無論它有沒有它。 – jwvh

回答

0

你是如何運行的片段?

一種行爲變化是它不能作爲2.11下的腳本運行,但是在2.12下運行。

$ scala -nc ran.scala 
Hello World 
$ scala211 -nc ran.scala 
$ cat ran.scala 

object Main extends App { 
    Console.println("Hello World ") 
} 

由於這與您所報告的內容相反,因此您正在做一些完全不同的事情。

+0

謝謝索姆。我正在使用Idea IDE。錯誤屏幕截圖[2.12](http://oi63.tinypic.com/r01e2b.jpg),[2.11](http://oi64.tinypic.com/bx2zk.jpg)根據你的終端風格,我嘗試過,它是工作正常。由於在2.12 scala.App中有更多的方法折舊,我用scala標記了它。 –

+1

@RanjithRajD謝謝你的表情。我不明白他們的「你也會喜歡的圖像」。爲什麼我會喜歡這些圖像?無論如何,我不使用IntelliJ,但我會再次下載它只是爲了檢查你的問題。 'public long executionStart();'在2.11和2.12下定義,所以其他事情正在發生。 :) –

+0

我有使用IntelliJ Idea和2.12相同的問題,它抱怨應用程序必須實現其方法,但它在命令行編譯罰款。我刪除了'extends App'並添加了一個'main'方法,現在它在命令行和Idea中工作正常。想法中的錯誤可能是? – cahen

相關問題