我正在使用 Java 和 gradle 编写控制台应用程序。我正在使用 application
plugin并在 build.gradle
中正确配置必填字段。
在我的主类中,我将 BufferedReader
与 System.in
链接。这是问题所在:当我在项目目录中运行 gradle run
时,阅读器不会等待我的控制台输入。 BufferedReader#readLine
在第一次调用时返回 null
。这种行为对于我正在做的事情是不可取的。
解决办法是什么?是否有用于 gradle 的单独控制台应用程序插件,或者我是否需要以某种方式调整 application
插件以满足我的需求?
最佳答案
默认情况下,您的 Gradle 构建的 system.in 不与 run (JavaExec) 的 system.in 连接任务。您可以执行以下操作:
build.gradle(Groovy 语法):
run {
standardInput = System.in
}
build.gradle.kts(Kotlin DSL 语法):
tasks.named<JavaExec>("run") {
standardInput = System.`in`
}
关于java - 带有 Java 和 gradle 的控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13172137/