Java의 명령 줄 인수

1. 소개

인수를 사용하여 명령 줄에서 응용 프로그램을 실행하는 것은 매우 일반적입니다. 특히 서버 측에서. 일반적으로 우리는 애플리케이션이 모든 실행에서 동일한 작업을 수행하는 것을 원하지 않습니다. 어떤 방식 으로든 동작을 구성하려고합니다.

이 짧은 자습서에서는 Java에서 명령 줄 인수를 처리하는 방법을 살펴 봅니다.

2. Java에서 명령 줄 인수에 액세스

이후 주요 방법은 Java 응용 프로그램의 진입 점입니다, JVM은 인수를 통해 명령 줄 인수를 전달합니다.

전통적인 방법은 String 배열 을 사용하는 것입니다 .

public static void main(String[] args) { // handle arguments }

그러나 Java 5는 양의 옷에있는 배열 인 varargs를 도입했습니다. 따라서 우리는 String vararg로 메인 을 정의 할 수 있습니다 .

public static void main(String... args) { // handle arguments }

그것들은 동일하므로 그들 사이에서 선택하는 것은 전적으로 개인적인 취향과 선호도에 달려 있습니다.

main 메소드 의 메소드 매개 변수는 실행시 전달한 것과 동일한 순서로 명령 줄 인수를 포함합니다. 우리가 얻은 인수의 양에 액세스 하려면 배열 의 길이 만 확인 하면됩니다.

예를 들어, 표준 출력에 인수의 수와 값을 인쇄 할 수 있습니다.

public static void main(String[] args) { System.out.println("Argument count: " + args.length); for (int i = 0; i < args.length; i++) { System.out.println("Argument " + i + ": " + args[i]); } }

일부 언어에서 첫 번째 인수는 응용 프로그램의 이름입니다. 반면에 Java에서이 배열에는 인수 만 포함됩니다.

3. 명령 줄 인수를 전달하는 방법

이제 명령 줄 인수를 처리하는 응용 프로그램이 있으므로 시도해 보겠습니다. 어떤 옵션이 있는지 살펴 보겠습니다.

3.1. 명령 줄

가장 확실한 방법은 명령 줄입니다. 우리가 이미 우리의 main 메소드를 가지고 com.baeldung.commandlinearguments.CliExample 클래스를 컴파일 했다고 가정 해 봅시다 .

그런 다음 다음 명령으로 실행할 수 있습니다.

java com.baeldung.commandlinearguments.CliExample

다음 출력을 생성합니다.

Argument count: 0

이제 클래스 이름 뒤에 인수를 전달할 수 있습니다.

java com.baeldung.commandlinearguments.CliExample Hello World!

출력은 다음과 같습니다.

Argument count: 2 Argument 0: Hello Argument 1: World!

일반적으로 애플리케이션을 .class 파일이 아닌 jar 파일로 게시 합니다. cli-example.jar 에 패키지화하고 com.baeldung.commandlinearguments.CliExample 을 기본 클래스로 설정 했다고 가정 해 보겠습니다 .

이제 다음과 같은 방법으로 인수없이 실행할 수 있습니다.

java -jar cli-example.jar

또는 인수 포함 :

java -jar cli-example.jar Hello World! Argument count: 2 Argument 0: Hello Argument 1: World!

참고 것을 자바 우리는 클래스 이름이나 우리의 응용 프로그램의 인수로 jar 파일 이름 다음에 전달할 모든 인수를 처리합니다 . 따라서 이전에 전달하는 모든 것은 JVM 자체에 대한 인수입니다.

3.2. 식

응용 프로그램을 작업하는 동안 원하는 방식으로 작동하는지 확인하고 싶습니다.

Eclipse에서 실행 구성을 사용하여 애플리케이션을 실행할 수 있습니다. 예를 들어, 실행 구성은 사용할 JVM, 진입 점, 클래스 경로 등을 정의합니다. 물론 명령 줄 인수를 지정할 수도 있습니다.

적절한 실행 구성을 만드는 가장 쉬운 방법은 기본 방법 을 마우스 오른쪽 버튼으로 클릭 한 다음 컨텍스트 메뉴에서 다음으로 실행> Java 애플리케이션 을 선택하는 것입니다.

이를 통해 프로젝트 설정을 따르는 설정으로 애플리케이션을 즉시 실행합니다.

인수를 제공하려면 해당 실행 구성을 편집해야합니다. 실행> 구성 실행… 메뉴 옵션을 통해 수행 할 수 있습니다 . 여기에서 인수 탭을 클릭 하고 프로그램 인수 텍스트 상자를 채워야 합니다.

실행하는 응용 프로그램을 실행하고 우리가 방금 입력 한 인수를 전달합니다.

3.3. IntelliJ

IntelliJ는 유사한 프로세스를 사용하여 응용 프로그램을 실행합니다. 이러한 옵션을 단순히 구성이라고합니다.

먼저 main 메서드 를 마우스 오른쪽 버튼으로 클릭 한 다음 Run 'CliExample.main ()' 을 선택해야합니다 .

This will run our program, but it will also add it to the Run list for further configuration.

So, then to configure arguments, we should choose Run > Edit Configurations… and edit the Program arguments textbox:

After that, we should hit OK and rerun our application, for example with the run button in the toolbar.

3.4. NetBeans

NetBeans also falls into line with its running and configuration processes.

We should run our application first by right-clicking on the main method and choosing Run File:

Like before, this creates a run configuration and runs the program.

Next, we have to configure the arguments in that run configuration. We can do that by choosing Run > Set Project Configuration > Customize… Then we should Run on the left and fill the Arguments text field:

After that, we should hit OK and start the application.

4. Third-Party Libraries

Manual handling of the command-line arguments is straightforward in simple scenarios. However, as our requirements become more and more complex, so does our code. Therefore, if we want to create an application with multiple command-line options, it would be easier to use a third-party library.

Fortunately, there're a plethora of those libraries which support most use cases. Two popular examples are Picocli and Spring Shell.

5. Conclusion

항상 애플리케이션의 동작을 구성 할 수 있도록하는 것이 좋습니다. 이 기사에서는 명령 줄 인수를 사용하여이를 수행하는 방법을 살펴 보았습니다. 또한 이러한 인수를 전달하는 다양한 방법을 다루었습니다.

평소처럼 예제는 GitHub에서 사용할 수 있습니다.