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

网友投稿 711 2022-11-10

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

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

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 捕获

http://

控制台输入时,无法正常运行,主要体现在如下代码在输入回车后无法执行:

ConsoleReader reader = new ConsoleReader();

reader.readLine("> ");

解决的办法:

在使用 jline 之前,执行如下http://代码即可:

jline.TerminalFactory.registerFlavor(TerminalFactory.Flavor.WINDOWS, jline.UnsupportedTerminal.class);

也可以在程序启动的命令行里增加参数

-Djline.terminal=jline.UnsupportedTerminal

到此这篇关于在

Gradle/IDEA中无法正常使用readLine的解决方法的文章就介绍到这了,更多相关idea无法正常使用readLine内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多

http://

多支持我们!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《RocketMQ源码分析》部分Consumer下线后,倒推Broker如何做到准实时通知剩余Consumer?
下一篇:RocketMQ:消息整体存储架构(CommitLog、ConsumeQueue)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~