2017-05-03 42 views
1

我有一個我想從命令行運行的Scala項目。然而,這是一個封裝內,所以如果我嘗試運行的類Main(其中包含main方法)我得到:如何從命令行運行包中的Scala類

error: illegal start of definition 
package mypackage 

任何想法如何在命令行中運行Main,同時仍保持了包?

+0

你使用'sbt'嗎?我運行'sbt run'是否有效? – mfirry

+0

'sbt run'工作但不打開用戶的控制檯。 'Main'類應該打開一個用戶控制檯。 – octavian

+0

你的意思是「沒有爲用戶打開控制檯」? – mfirry

回答

1

如果sbt run正如你所說,sbt console是你在找什麼。

一旦你在SBT控制檯上,通過鍵入

mypackage.Main.main() 
+0

如果我運行'mypackage.Main.main(Array.empty)',那麼我不會得到一個用戶控制檯。 – octavian

+0

你的主要功能有無限循環嗎? – Josef

+0

是的,有一個要求用戶輸入。 – octavian

0

首先sbt和執行你的主要方法,當你在控制檯模式是(即你打後面輸入)runMain Main

這對我一直都有效。

+0

如果我這樣做,我會得到'java.lang.ClassNotFoundException:Main'(即使它存在,也不會看到該類)。 – octavian

+0

'runMain mypackage.Main'也發生了同樣的情況?如果你做'sbt'然後'編譯'你會得到一個成功的消息? – vasigorc