본문 바로가기
프로그래밍/Java

[Java] 배열 - main()의 매개변수 String[] args의 의미

by 소꿍 2020. 9. 1.

배열을 공부하다 main() 메소드의 매개변수 String[] args가 나왔는데,

무슨 말인지 이해가 안 돼서 다른 자료들을 참고해 정리해 보았다.

 

 

main() 메소드 생성 옵션

위 화면처럼 이클립스에서 클래스를 생성할 때 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를 출력해 보면 다음과 같이 출력된다.


참고한 글

 

댓글