2012-06-15 2 views
0

콘솔 입력 및 출력을 처리하기 위해 JLine 라이브러리를 사용합니다.JLine 라이브러리 반향

Terminal terminal = TerminalFactory.getFlavor(TerminalFactory.Flavor.valueOf("UNIX")); 
terminal.init(); 
terminal.setEchoEnabled(true); 
ConsoleReader console = new ConsoleReader(System.in,System.out); 
int key = console.readCharacter(); 

나는 JLine v2.6을 사용합니다. 에코가 작동하지 않습니다. 위의 코드에 어떤 문제가 있습니까? 누군가 도울 수 있습니까?

JLine과 같은 다른 라이브러리를 검색하는 데 지겹고 지쳤습니다. 콘솔 입력을 처리 할 다른 Java 라이브러리가 있습니까?

+1

jLine2가 적극적으로 열정적으로 유지 관리되는 것처럼 "아프고 다른 [s]를 검색하는 데 지겹다"라고 생각하면 왜 기여하지 않을까요? 컵이 내게 반쯤 넘는 것처럼 보입니다. – earcam

답변

2

JLine은 실행하는 모든 플랫폼에서 코드를 코드로 사용합니다. 일부 플랫폼의 일부 터미널에는 상자에서 즉시 작동하기위한 올바른 설정이 없습니다.

기본 동작은 해당 플랫폼의 기본 터미널로 인해 플랫폼마다 다르지만 올바르게 설정하고 올바르게 구성하면 매우 잘 작동합니다. 대부분 문제는 터미널 에뮬레이션 설정이며 JLine과 아무 관련이 없습니다.

그렇다면 OSX (bash), Windows 및 RHEL/Centos (bash)에서 큰 성공을 거두었습니다.

1

ConsoleReaderreadCharacter();은 반향을 나타내지 않지만, readLine()readLine(String prompt)이 표시됩니다.

console.readCharacter() 메서드의 (쉽게 사용할 수있는) 소스를 보면 명시 적으로 (개인) clearEcho()를 호출하여 포인터를 뒤로 이동하여 에코를 지울 수 있습니다.

jLine는 GNU 내의 readLine 및 BSD editLine와 호환되도록 설계되었습니다 강조 라인 처리를 위해 콘솔 지원을 제공하는 것 같다 않는 문서가, 조금 얇은이지만.

나는 문자 처리가 제공된다고 추측 하겠지만 문자를 반향 할 책임은 귀하에게 있습니다.