배열을 공부하다 main() 메소드의 매개변수 String[] args가 나왔는데,
무슨 말인지 이해가 안 돼서 다른 자료들을 참고해 정리해 보았다.
위 화면처럼 이클립스에서 클래스를 생성할 때 main() 메소드를 함께 생성하는 옵션을 체크하면
클래스 파일에 'public static void main(String[] args)'으로 main() 메소드가 추가된다.
여기서 main() 메소드의 매개변수인 String[] args는 무엇일까?
자바 프로그램의 개발 순서를 보면,
자바 소스 파일(*.java)을 실행하면 컴파일러(javac.exe)가 소스를 컴파일(기계어로 번역)하여 바이트 코드 파일(*.class)을 생성하고 이를 인터프리터(java.exe)가 실행해 준다.
자바 GUI 환경이 아닌 커맨드 창에서 자바 프로그램을 실행하는 경우, 아래 형태의 명령어(코드 블럭)를 사용하여 *.java 파일을 컴파일하고, *.class파일을 실행한다.
1) 컴파일 명령어
javac 소스파일명.java //javac.exe로 컴파일
2) 실행 명령어
java 클래스명 문자열0 문자열1 문자열2 ... 문자열n-1 //java.exe로 실행
위 명령어를 통해 자바 프로그램을 실행하면, JVM(Java Virtual Machine)이 크기가 0인 String 배열 args를 자동 생성하여 사용자가 main() 메소드를 호출할 때 매개변수(파라미터)로 String 배열을 전달해 준다.
프로그램의 시작점이 main() 메소드이므로, 프로그램을 실행하면 반드시 String 배열 args가 만들어진다고 볼 수 있다.
자바 프로그램 실행 명령어에서 사용자가 입력한 클래스명 뒤의 문자열들은 공백 단위로 구분되어 각각 매개변수가 된다.
즉, 클래스명 뒤에 입력한 문자열들이 String 배열 args에
String [] args = {"문자열0", "문자열1", "문자열2", ... "문자열n-1"}로 저장되어 main() 메소드에 매개변수로 전달된다.
main() 메소드는 String 배열 타입의 args 매개변수를 통해 커맨드 라인에서 입력된 데이터를 전달받을 수 있게 되는 것이다.(command-line arguments)
이클립스의 경우, 커맨드 창이 아니라 arguments를 입력할 수 있는 GUI를 구현하고 있다.
이클립스에서 arguments를 입력하는 방법은 다음과 같다.
1) 이클립스 상단 메뉴에서 재생 버튼 같이 생긴 메뉴를 눌러 Run Configurations를 클릭하거나,
상단 메뉴의 Run - Run Configurations를 클릭한다.
2) Run Configurations의 Arguments 탭의 Program arguments에 넘겨주고자 하는 매개변수값을 입력하고(반드시 공백으로 구분해야 함), Apply 클릭 후 - Run을 클릭한다.
3) 입력한 arguments가 들어간 String [] args를 출력해 보면 다음과 같이 출력된다.
참고한 글
- https://m.blog.naver.com/PostView.nhn?blogId=rain483&logNo=220572136215&proxyReferer=https:%2F%2Fwww.google.com%2F
- https://fruitdev.tistory.com/94
'프로그래밍 > Java' 카테고리의 다른 글
[Java] 배열(array) (0) | 2020.09.01 |
---|---|
[Java] 문장(Statement) (0) | 2020.08.31 |
[Java] Eclipse 설치, 한글 안 깨지게 설정하기(UTF-8), 프로젝트 생성/실행/삭제/불러오기 (0) | 2020.08.31 |
[Java] equals(), ==, compareTo() (0) | 2020.08.30 |
[Java] 연산자(Operator) (0) | 2020.08.12 |
댓글