본문 바로가기

Com/Java

[Java] String[]args / String args[]

자바를 처음 접하게 되면 C언어 에서 int main(void) 와 같이 처음에 아무 의미도 모르고 자동으로 메인 함수에 쓰게 되는 것이 있다.

public static void main(String[]args)

public 과 static 의 의미는 조금 공부하게 되면 금방 배우지만 String[]args 또는 String args[] 의 의미는 따로 나와있어도 매우 짧게 설명이 되어있어서 그냥 지나치기 쉬운 것 같다.

일단 형태는 다른 메소드의 파라미터 같이 메인 함수의 파라미터 자리에 들어가 있는데 왜 문자열일까?

String[]args 는 명령형 파라미터라고 한다. 프로그램이 시작될 때 받는 명령어를 파라미터로 받는다는 것 입니다.

String[]args 는 args 라는 배열을 의미하는 것 정도는 알 수 있습니다. 그렇다면 여기에 무슨 값이 들어있나 확인해보기 위해 다음과 같은 코드를 짜서 무슨 값이 출력되는지 확인해 보겠습니다.

import java.io.*;
public class Test{
    public static void main(String[]args){
        for(String str : args)
            System.out.println(str);
        System.out.println(length.args);
    }
}

위 코드를 입력 후 출력해보시면 아무것도 나오지 않는 것을 볼 수 있습니다. 왜냐하면 String[]args는 프로그램이 시작할 때 받는 명령어를 받는 명령형 파라미터 인데 그냥 Eclipse 같은 툴을 사용해서 실행시키면 실행될 때 받는 명령어가 없기 때문에 args 안에는 아무 명령어도 없는 것 입니다.

아직 정확히 모르겟지만 명령어 프롬프트(cmd)에서 실행시킬 때 리눅스, 도스 옵션 처럼 ls -a 와 같이 java Test -xx 해주게 되면 뒤 옵션을 명령어로 받아서 args 에 저장시키는 것 같습니다.