2017-05-03 123 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