Gradle中Kotlin的readLine函数为何无法正常读取输入?
解决Gradle Kotlin应用run任务中readLine()返回null的问题
问题核心是Gradle的run任务默认未将程序的标准输入(stdin)连接到终端,导致readLine()无法读取用户输入,直接返回null。
解决方法是在构建脚本中配置run任务,启用标准输入连接:
针对Kotlin DSL(build.gradle.kts)
tasks.withType<JavaExec> { standardInput = System.`in` }
针对Groovy DSL(build.gradle)
tasks.withType(JavaExec) { standardInput = System.in }
配置完成后重新执行./gradlew run,程序就能正常等待并读取用户输入。
验证效果
执行run任务后终端会显示:
> Task :app:run Enter text:
输入内容并回车后,将得到正确输出:
Enter text: Hello Gradle You entered: Hello Gradle
内容的提问来源于stack exchange,提问作者user18798042
相关产品推荐
相关产品推荐

