欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-15 19:01:09
gradle的标准输入默认并不与系统标准输入绑定,需手动设置参考: https://*.com/questions/13172137/console-application-w...

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

参考: https://*.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内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!