Scala Gradle任务未在IntelliJ中设置标准输入

Scala Gradle任务未在IntelliJ中设置标准输入,scala,gradle,Scala,Gradle,我有一个使用Leap Motion SDK的项目,我成功地在Windows和Linux上运行了它。但是,当从IntelliJ运行时,我在读取输入时遇到问题 My main设置了一个控制器和监听器,它将数据转储到另一个线程中的控制台,然后主线程阻塞,直到读取一行,然后退出 def main(args: Array[String]) { val listener = new SampleListener val controller = new Controller controlle

我有一个使用Leap Motion SDK的项目,我成功地在Windows和Linux上运行了它。但是,当从IntelliJ运行时,我在读取输入时遇到问题

My main设置了一个控制器和监听器,它将数据转储到另一个线程中的控制台,然后主线程阻塞,直到读取一行,然后退出

def main(args: Array[String]) {
  val listener = new SampleListener
  val controller = new Controller

  controller.addListener(listener)

  var input = scala.io.StdIn.readLine()

  while (true) Thread sleep (1000)

  controller.removeListener(listener)
}
在IntelliJ中,似乎没有设置标准输入流,因此readLine立即返回,程序退出。我不得不在IDE中设置一个无限的睡眠循环来保持它的运行。此外,从IntelliJ停止gradle任务实际上并不会杀死java应用程序

我了解到,在my之后添加standardInput行将确保标准输入不为null,但在IntelliJ中仍然不起作用:

run {
    main = 'uk.co.abp24.Launch'
    standardInput = System.in
    jvmArgs = [ "-Djava.library.path=lib"]
}

如果您知道如何解决这两个问题,请告诉我,谢谢。

您是如何从IntelliJ内部运行应用程序的?这里是否涉及Gradle?只是正常运行或单击Gradle运行任务。文章中链接了构建脚本。我可以确认这个问题,我似乎无法解决它,您对此有任何更新吗?我猜您正在调试模式下运行是吗?标准输入行为我工作,然后我跳转到调试,砰的一声熄灭了神奇的烟雾。我认为调试的执行方式不一样……但我不是Gradle专家,所以我不知道。可能是重复的