概述
Gradle的标准输入默认并不与系统标准输入绑定,需手动设置
参考: https://stackoverflow.com/questions/13172137/console-application-with-java-and-gradle
问题
在Gradle构建的控制台程序中,标准输入readLine总是返回null
原因
Gradle的标准输入默认并不与系统标准输入绑定,需手动设置
解决方法
在build.gradle.kts中添加
tasks.named<JavaExec>("run") { standardInput = System.`in` }
如果需要更干净的输出,可以用
gradle console:run -q --console=plain
解决方法(Groovy)
在build.gradle中添加
run { standardInput = System.in }
补充:在 IDEA 开发环境里使用 jline 无法正常工作的问题处理
现象:在 IDEA 中开发应用,使用 jline 捕获控制台输入时,无法正常运行,主要体现在如下代码在输入回车后无法执行:
ConsoleReader reader = new ConsoleReader();
reader.readLine("> ");
解决的办法:
在使用 jline 之前,执行如下代码即可:
jline.TerminalFactory.registerFlavor(TerminalFactory.Flavor.WINDOWS, jline.UnsupportedTerminal.class);
也可以在程序启动的命令行里增加参数
-Djline.terminal=jline.UnsupportedTerminal
到此这篇关于在Gradle/IDEA中无法正常使用readLine的解决方法的文章就介绍到这了,更多相关idea无法正常使用readLine内容请搜索靠谱客以前的文章或继续浏览下面的相关文章希望大家以后多多支持靠谱客!
最后
以上就是怕孤独百褶裙为你收集整理的解决在Gradle/IDEA中无法正常使用readLine的问题原因的全部内容,希望文章能够帮你解决解决在Gradle/IDEA中无法正常使用readLine的问题原因所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复