[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에 멀티라인 텍스트 출력하기

자바 애플리케이션을 개발할 때 종종 터미널에 멀티라인 텍스트를 동적으로 출력해야 할 때가 있습니다. 이를 위해 Jansi 라이브러리를 사용할 수 있습니다. Jansi는 자바에서 ANSI 이스케이프 시퀀스를 지원하여 컬러 출력 및 터미널 제어를 간단하게 할 수 있도록 도와줍니다.

Jansi 라이브러리 추가하기

먼저, 프로젝트의 의존성 관리 도구를 사용하여 Jansi 라이브러리를 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가하세요:

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

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가하세요:

implementation 'org.fusesource.jansi:jansi:1.18'

의존성을 추가한 후, 프로젝트를 다시 빌드해주세요.

멀티라인 텍스트 출력하기

Jansi를 이용하여 터미널에 멀티라인 텍스트를 출력하는 방법은 간단합니다. 다음은 Jansi를 사용하여 터미널에 멀티라인 텍스트를 출력하는 예제 코드입니다:

import org.fusesource.jansi.AnsiConsole;

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

        // 멀티라인 텍스트 출력
        System.out.println("\u001b[0;31mHello, World!");
        System.out.println("\u001b[0;32m안녕하세요!");
        System.out.println("\u001b[0;33mสวัสดีครับ!");
        System.out.println("\u001b[0;34mHola!");

        AnsiConsole.systemUninstall();
    }
}

위의 예제 코드에서는 AnsiConsole.systemInstall()을 호출하여 Jansi를 활성화합니다. 그런 다음, ANSI 이스케이프 시퀀스를 사용하여 각 줄에 색상을 지정하고 텍스트를 출력합니다. 마지막으로, AnsiConsole.systemUninstall()을 호출하여 Jansi를 비활성화합니다.

위의 예제 코드를 실행하면 터미널에 다음과 같이 멀티라인으로 텍스트가 출력됩니다:

Hello, World!
안녕하세요!
สวัสดีครับ!
Hola!

Jansi를 사용하면 간단히 터미널에 멀티라인 텍스트를 출력할 수 있습니다. 또한, ANSI 이스케이프 시퀀스를 사용하여 텍스트에 다양한 스타일 및 색상을 적용할 수도 있습니다.

참고 자료