【问题标题】:How to run a Scala class that's in a package from the command line如何从命令行运行包中的 Scala 类
【发布时间】:2017-10-01 20:04:31
【问题描述】:

我有一个想从命令行运行的 Scala 项目。但是,这是在一个包中,所以如果我尝试运行 Main 类(其中包含 main 方法),我会得到:

error: illegal start of definition
package mypackage

知道如何从命令行运行Main,同时仍然保留包吗?

【问题讨论】:

  • 你在使用sbt吗?我运行sbt run 是否有效?
  • sbt run 可以工作,但不会为用户打开控制台。 Main 类应该打开一个用户控制台。
  • “不为用户打开控制台”是什么意思?
  • 我想提示用户输入。当我使用sbt 运行项目时,不会发生这种情况。

标签: scala


【解决方案1】:

如果sbt run 如您所说,sbt console 就是您要找的。​​p>

进入 sbt 控制台后,键入执行 main 方法

mypackage.Main.main()

【讨论】:

  • 如果我运行mypackage.Main.main(Array.empty),那么我不会得到用户控制台。
  • 你的主函数中是否存在无限循环?
  • 是的,有一个要求用户输入。
  • 究竟是如何打开用户控制台的?
  • while(true) { println("something") /*some other code*/ scanner.nextLine() /*some other code*/ }
【解决方案2】:

首先sbt,当您处于控制台模式时(即在您按下回车后)runMain Main

这一直对我有用。

【讨论】:

  • 如果我这样做,我会得到java.lang.ClassNotFoundException: Main(即使存在该类也看不到它)。
  • runMain mypackage.Main 也会发生同样的情况?如果您执行sbt 那么compile 您会收到成功消息吗?
猜你喜欢
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2022-10-26
  • 2010-12-23
  • 2023-04-07
相关资源
最近更新 更多