Scala Gradle任务未在IntelliJ中设置标准输入
我有一个使用Leap Motion SDK的项目,我成功地在Windows和Linux上运行了它。但是,当从IntelliJ运行时,我在读取输入时遇到问题 My main设置了一个控制器和监听器,它将数据转储到另一个线程中的控制台,然后主线程阻塞,直到读取一行,然后退出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
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专家,所以我不知道。可能是重复的