Java 使用JLine2仅显示字符串几秒钟

Java 使用JLine2仅显示字符串几秒钟,java,terminal,jline2,Java,Terminal,Jline2,我正在使用Java编写一个控制台应用程序。我需要让一个密码在控制台上显示10秒钟,然后(在GNU终端上)擦除它 我尝试了不同的方法,其中包括: putString(pass); Thread.sleep(10*1000); resetLine(); 但是没有运气。要么文本不显示,要么文本未清除。好的,我终于想出了以下方法(该类扩展了ConsoleReader): public boolean showPassword(字符串传递,整数毫秒){ 试一试{ resetprompline(“密码

我正在使用Java编写一个控制台应用程序。我需要让一个密码在控制台上显示10秒钟,然后(在GNU终端上)擦除它

我尝试了不同的方法,其中包括:

putString(pass); 
Thread.sleep(10*1000); 
resetLine();

但是没有运气。要么文本不显示,要么文本未清除。

好的,我终于想出了以下方法(该类扩展了
ConsoleReader
):

public boolean showPassword(字符串传递,整数毫秒){
试一试{
resetprompline(“密码>”,pass,pass.length());
睡眠(毫秒);
if(setCursorPosition(0)和&killLine())resetPromptLine(“密码>”,“”,0);
}捕获(中断异常| IOE异常){
e、 printStackTrace();
}
返回false;
}
我使用
resetLine
显示自定义提示和密码;我还将光标设置到行的末尾。我等了一会儿。我将光标设置到行的末尾并“终止行”。要使密码真正消失,我必须再次调用
resetPromptLine

要在给定时间内等待用户输入,请使用
readCharacter()
而不是
Thread.sleep()