解決在Gradle/IDEA中無(wú)法正常使用readLine的問(wèn)題原因
Gradle的標(biāo)準(zhǔn)輸入默認(rèn)并不與系統(tǒng)標(biāo)準(zhǔn)輸入綁定,需手動(dòng)設(shè)置
參考: https://stackoverflow.com/questions/13172137/console-application-with-java-and-gradle
問(wèn)題
在Gradle構(gòu)建的控制臺(tái)程序中,標(biāo)準(zhǔn)輸入readLine總是返回null
原因
Gradle的標(biāo)準(zhǔn)輸入默認(rèn)并不與系統(tǒng)標(biāo)準(zhǔn)輸入綁定,需手動(dòng)設(shè)置
解決方法
在build.gradle.kts中添加
tasks.named<JavaExec>("run") {
standardInput = System.`in`
}
如果需要更干凈的輸出,可以用
gradle console:run -q --console=plain
解決方法(Groovy)
在build.gradle中添加
run {
standardInput = System.in
}
補(bǔ)充:在 IDEA 開(kāi)發(fā)環(huán)境里使用 jline 無(wú)法正常工作的問(wèn)題處理
現(xiàn)象:在 IDEA 中開(kāi)發(fā)應(yīng)用,使用 jline 捕獲控制臺(tái)輸入時(shí),無(wú)法正常運(yùn)行,主要體現(xiàn)在如下代碼在輸入回車(chē)后無(wú)法執(zhí)行:
ConsoleReader reader = new ConsoleReader();
reader.readLine("> ");
解決的辦法:
在使用 jline 之前,執(zhí)行如下代碼即可:
jline.TerminalFactory.registerFlavor(TerminalFactory.Flavor.WINDOWS, jline.UnsupportedTerminal.class);
也可以在程序啟動(dòng)的命令行里增加參數(shù)
-Djline.terminal=jline.UnsupportedTerminal
到此這篇關(guān)于在Gradle/IDEA中無(wú)法正常使用readLine的解決方法的文章就介紹到這了,更多相關(guān)idea無(wú)法正常使用readLine內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot自定義mybatis攔截器實(shí)現(xiàn)擴(kuò)展
本文主要介紹了Springboot自定義mybatis攔截器實(shí)現(xiàn)擴(kuò)展,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Java 8 中的 10 個(gè)特性總結(jié)及詳解
本主要介紹Java 8中的新特性,這里整理了相關(guān)資料并整理了10個(gè)特性,逐一介紹說(shuō)明,有興趣的朋友可以參考下2016-09-09
關(guān)于Java中String類(lèi)字符串的解析
這篇文章主要介紹有關(guān)Java中String類(lèi)字符串的解析,在java中,和C語(yǔ)言一樣,也有關(guān)于字符串的定義,并且有他自己特有的功能,下面就進(jìn)入主題一起學(xué)習(xí)下面文章內(nèi)容吧2021-10-10

