제목:

자바 프로그램 실행 옵션 받기

날짜: Posted on

다음과 같은 자바 코드가 있다고 가정을 해 봅시다.

public class ArgsTest {
	public static void main(String[] args) {
		if ( args.length == 0 ) {
			System.out.println("No arguments.");
		} else {
			for ( int i = 0; i < args.length; i++ ) {
				System.out.format("%d: %s\n", i, args[i]);
			}
		}
	}
}

이 코드를 보면 2번째 줄에서 main에 추가로 (String[] args) 옵션이 있는 것을 볼 수 있을 것입니다. 이는 프로그램 실행시 추가적인 옵션값을 받기 위한 문자열 배열입니다. 콘솔 창에서 이를테면 dir *.txt 식으로 dir 명령을 실행할 때 그 옵션으로 *.txt를 부여하면 디렉터리에서 확장자가 txt인 파일들을 보여 줍니다. 여기서 *.txt에 해당하는 부분을 추출하기 위하여 args 배열을 정의하는 것입니다.

이 예제에서는 3번 줄에서 args 배열의 개수를 검사하여 개수가 0개이면(즉, 옵션을 주지 않고 그냥 실행하면) 4번 줄처럼 “No arguments.“라는 메시지를 출력하고 그게 아니면(즉, 하나 이상의 옵션을 주고 실행하면) 6번 줄로 넘어가서 옵션 배열의 원소 수만큼 반복해서 앞의 원소부터 번호를 매겨 차례대로 출력합니다.

실행해 보면 다음과 같습니다.

$ java ArgsTest
No arguments.

$ java ArgsTest Foo Bar
0: Foo
1: Bar

$ java ArgsTest "Foo Bar"
0: Foo Bar

위와 같이 아무 옵션도 주지 않고 실행하면 “No arguments.“라는 메시지가 표시되고 옵션을 주면 그 옵션들이 앞에서부터 번호를 매겨서 표시됩니다. 옵션은 공백 문자를 기준으로 분리되므로 두 번째 실행처럼 Foo Bar로 입력하면 각각 “Foo”와 “Bar”로 분리되어 0번 “Foo”, 1번 “Bar” 식으로 표시됩니다. 단, 큰따옴표 안에서는 공백 문자가 있더라도 분리되지 않습니다. 즉, 세 번째 실행처럼 옵션을 "Foo Bar"로 입력하면 큰따옴표 안의 “Foo Bar”가 통째로 하나의 옵션으로 취급되어 0번 “Foo Bar”와 같이 표시됩니다.

이와 같이 자바에서 args 배열을 이용한 프로그래밍을 해 볼 수 있습니다.

1개의 댓글이 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다