[java] 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'
}
터미널 창 크기 읽기
Jansi를 사용하여 터미널 창 크기를 읽으려면 org.fusesource.jansi.AnsiConsole
을 사용합니다. 다음은 터미널의 너비와 높이를 읽는 예제 코드입니다:
import org.fusesource.jansi.AnsiConsole;
public class TerminalSizeExample {
public static void main(String[] args) {
// Jansi 초기화
AnsiConsole.systemInstall();
// 터미널 크기 읽기
int width = AnsiConsole.out().ansi().eraseScreen().renderer().getWidth();
int height = AnsiConsole.out().ansi().eraseScreen().renderer().getHeight();
// 터미널 크기 출력
System.out.println("터미널 너비: " + width + " columns");
System.out.println("터미널 높이: " + height + " rows");
// Jansi 정리
AnsiConsole.systemUninstall();
}
}
위 코드를 실행하면 터미널 창의 너비와 높이가 출력됩니다.
결론
Jansi를 사용하면 자바 애플리케이션에서 터미널 창의 크기를 쉽게 읽어올 수 있습니다. 이를 활용하여 터미널 크기에 맞게 UI를 조정하거나, 출력 내용을 최적화하는 등의 작업에 활용할 수 있습니다.