[Java] 자바 String[] args (프로그램 아규먼트)
프로그램 아규먼트 (String[] args)?
자바에서 가장 먼저 코드를 로딩하는 곳은 main()이다.
ex)
public static void main(String[] args) {...}
main() 메서드 {...} 블록 안에 코드를 작성해주면 JVM은 가장 먼저 이곳을 읽어들인다.
그런데 대체 String[] args는 무엇을 의미하는가?
역사 :
- 이클립스를 사용하기 전에는 명령창을 통해서 java 확장자 파일을 class 파일로
직접 컴파일 시켰다. 그리고 컴파일된 class 파일의 디렉토리 주소를 찾아가 다음과
같이 도스 창에 명령어를 작성해주었다.
> java -cp bin step08.Test01_1
이렇게 class 파일을 로딩할 경우 JVM은 main() 메서드 안에 있는 코드를 순서대로
읽게 된다. 그런데 main() 메서드 코드를 읽을 때 특정 파라미터 값을 바로 넘겨주고
싶을 때가 생긴다. 이때 args라는 이름을 가진 String[] 배열을 파라미터 값으로 넘기는
시도를 하게 된다.
class 파일이 생성된 디렉토리를 찾아가 다음과 같이 명령어를 주면
String[] args 형태의 파라미터 값을 넘겨줄 수 있다.
> java -cp bin step08.Test01_1 aaa bbb ccc 111 222
굵게 칠한 부분이 바로 각각 String 타입의 args 배열 값이다.
그래서 만약 main() 메서드에 다음 코드
System.out.println(args[0], args[1], args[2], args[3], args[4]); 를 써주게 되면
- 실행 결과 :
aaa, bbb, ccc, 111, 222
이렇게 출력이 된다.
정리 :
프로그램 아규먼트 (String[] args)
- 프로그램을 실행할 때 넘겨주는 값
- 예) 클래스 파일 뒤에 "aaa bbb ccc 111 222"와 같은 값을 넘겨줘 보자.
> java -cp bin step08.Test01_1 aaa bbb ccc 111 222
- 이처럼 클래스 이름 뒤에 값을 주게 되면 공백을 기준으로 문자열을 잘라서 배열에
담아 main() 메서드의 파라미터 값으로 넘어온다.
'Programming > java' 카테고리의 다른 글
[Java] 오버라이딩 (overriding)과 super 키워드 (0) | 2017.05.12 |
---|---|
[Java] 상속 (inheritance)과 Object 클래스 (0) | 2017.05.12 |
[Java] 문자열 (String)과 상수 문자열 (String) 그리고 equals() 메서드 (0) | 2017.05.11 |
[Java] 인스턴스 메서드 (instance method) (0) | 2017.05.11 |
[Java] 생성자 (constructor)와 오버로딩 (overloading) (0) | 2017.05.11 |