[java] Jansi를 이용하여 자바 애플리케이션에서 터미널 창에서 텍스트 선택하기

자바 애플리케이션을 개발할 때, 터미널 창에서 사용자로부터 입력을 받거나 텍스트를 출력하는 경우가 많습니다. 이때 Jansi 라이브러리를 사용하면 터미널 창에서 텍스트를 선택하고 다른 작업에 활용할 수 있습니다.

Jansi는 자바로 작성된 터미널 화면 처리 라이브러리로, ANSI 이스케이프 시퀀스를 처리하고 터미널 창에서 텍스트 출력을 제어하는 기능을 제공합니다.

다음은 Jansi를 사용하여 터미널 창에서 텍스트를 선택하는 방법을 예시 코드와 함께 설명합니다:

Jansi 라이브러리 추가하기

먼저, 프로젝트의 의존성에 Jansi를 추가해야 합니다. Maven을 사용하는 경우, pom.xml에 다음 의존성을 추가합니다:

<dependency>
    <groupId>org.fusesource.jansi</groupId>
    <artifactId>jansi</artifactId>
    <version>1.18</version>
</dependency>

Gradle을 사용하는 경우, build.gradle에 다음 의존성을 추가합니다:

dependencies {
    implementation 'org.fusesource.jansi:jansi:1.18'
}

터미널에서 텍스트 선택하기

다음은 터미널 창에서 텍스트를 선택하는 자바 코드입니다.

import org.fusesource.jansi.AnsiConsole;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class TerminalInputExample {
    public static void main(String[] args) throws IOException {
        AnsiConsole.systemInstall();

        System.out.println("텍스트를 입력하세요:");

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String selectedText = reader.readLine();

        System.out.println("선택된 텍스트: " + selectedText);

        AnsiConsole.systemUninstall();
    }
}

위 코드에서는 org.fusesource.jansi.AnsiConsole 클래스를 사용하여 터미널 콘솔을 활성화하고 비활성화합니다. System.console()에서 입력을 받기 위해 BufferedReader를 사용하고, System.out.println()을 사용하여 선택된 텍스트를 출력합니다.

실행하기

코드를 컴파일하고 실행하면, 터미널 창에서 텍스트를 입력받을 수 있습니다. 입력 후에는 선택된 텍스트가 출력됩니다.

$ java TerminalInputExample
텍스트를 입력하세요:
Hello World!
선택된 텍스트: Hello World!

Jansi를 사용하면 터미널 창에서 텍스트를 선택하여 자바 애플리케이션에 활용할 수 있습니다. 간단하게 사용할 수 있는 Jansi 라이브러리를 통해 터미널 화면 처리를 더 편리하게 만들어보세요.

참고 자료