解决在Gradle/IDEA中无法正常使用readLine的问题原因

这篇文章主要介绍了在Gradle/IDEA中无法正常使用readLine的解决方法,原因是由于Gradle的标准输入默认并不与系统标准输入绑定,需手动设置,需要的朋友可以参考下

Gradle的标准输入默认并不与系统标准输入绑定,需手动设置

参考: https://stackoverflow.com/questions/13172137/console-application-with-java-and-gradle

问题

在Gradle构建的控制台程序中,标准输入readLine总是返回null

原因

Gradle的标准输入默认并不与系统标准输入绑定,需手动设置

解决方法

在build.gradle.kts中添加

 tasks.named("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内容请搜索0133技术站以前的文章或继续浏览下面的相关文章希望大家以后多多支持0133技术站!

以上就是解决在Gradle/IDEA中无法正常使用readLine的问题原因的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » Java