[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에서 키 입력 처리하기

자바 애플리케이션을 개발하는 과정에서 터미널에서 키 입력을 처리해야 하는 경우가 있습니다. 이때 Jansi 라이브러리를 이용하면 간편하게 터미널에서 키 입력을 처리할 수 있습니다.

Jansi란?

Jansi는 자바에서 터미널 컬러를 지원하는 라이브러리입니다. 이 라이브러리를 사용하면 터미널에서 키 입력을 처리하는 기능도 제공합니다. Jansi는 Maven을 통해 손쉽게 프로젝트에 추가할 수 있습니다.

Jansi를 이용한 키 입력 처리 방법

  1. Jansi 라이브러리를 프로젝트에 추가합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다.
<dependency>
    <groupId>org.fusesource.jansi</groupId>
    <artifactId>jansi</artifactId>
    <version>1.18</version>
</dependency>
  1. 키 입력을 처리할 클래스를 작성합니다.
import org.fusesource.jansi.AnsiConsole;

public class KeyInputHandler {
    public static void main(String[] args) {
        AnsiConsole.systemInstall(); // Jansi를 터미널에 설치합니다.
        
        while (true) {
            if (System.in.available() > 0) { // 터미널에서 키 입력이 있는지 확인합니다.
                int key = System.in.read(); // 키 입력을 읽어옵니다.
                
                if (key == 27) { // ESC 키를 눌렀을 경우 종료합니다.
                    break;
                } else {
                    System.out.println("키 입력: " + key);
                }
            }
        }
        
        AnsiConsole.systemUninstall(); // Jansi를 터미널에서 제거합니다.
    }
}

위 코드에서 주목해야 할 부분은 다음과 같습니다.

  1. 애플리케이션을 실행합니다. 이제 터미널에서 키를 입력하면 입력된 키를 출력하는 메세지가 출력됩니다.

마무리

Jansi를 이용하면 자바 애플리케이션에서 터미널에서 키 입력을 간편하게 처리할 수 있습니다. 위에서 소개한 방법을 사용하여 터미널에서 키 입력을 처리하는 로직을 구현해 보세요.

참고 자료