SeouliteLab

[Java/자바] 명령행 인자 입력 받는 방법 본문

프로그래밍

[Java/자바] 명령행 인자 입력 받는 방법

Seoulite Lab 2024. 3. 7. 09:02

Java 프로그램을 실행할 때 사용자로부터 명령행 인자를 입력 받아야 할 때가 있습니다. Java에서는 이를 위해 몇 가지 방법을 제공합니다. 아래에서는 명령행 인자를 입력 받는 여러 가지 방법을 예제와 함께 살펴보겠습니다.

예제 1: main 메서드의 args 매개변수 사용

public class CommandLineArgsExample {
    public static void main(String[] args) {
        System.out.println("전달된 인자 개수: " + args.length);
        for (String arg : args) {
            System.out.println("인자: " + arg);
        }
    }
}

위 예제는 main 메서드의 args 매개변수를 사용하여 명령행 인자를 입력 받는 방법입니다. args 배열에는 프로그램 실행 시 전달된 인자들이 저장됩니다.

예제 2: Scanner 클래스를 사용한 명령행 인자 입력

import java.util.Scanner;

public class CommandLineArgsExample {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("인자 입력: ");
        String argument = scanner.nextLine();
        
        System.out.println("입력된 인자: " + argument);
        
        scanner.close();
    }
}

Scanner 클래스를 사용하여 명령행 인자를 입력 받는 방법입니다. 사용자가 프로그램 실행 후 직접 입력하는 방식입니다.

예제 3: BufferedReader와 InputStreamReader를 사용한 명령행 인자 입력

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CommandLineArgsExample {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        
        System.out.print("인자 입력: ");
        String argument = reader.readLine();
        
        System.out.println("입력된 인자: " + argument);
        
        reader.close();
    }
}

BufferedReader와 InputStreamReader를 사용하여 명령행 인자를 입력 받는 방법입니다. 사용자가 프로그램 실행 후 직접 입력하는 방식입니다.

예제 4: Apache Commons CLI 라이브러리를 사용한 명령행 인자 파싱

Apache Commons CLI 라이브러리를 사용하여 명령행 인자를 파싱하는 방법입니다. 이를 위해 프로젝트에 commons-cli 라이브러리를 추가해야 합니다.

import org.apache.commons.cli.*;

public class CommandLineArgsExample {
    public static void main(String[] args) throws ParseException {
        Options options = new Options();
        options.addOption("a", "argument", true, "명령행 인자");
        
        CommandLineParser parser = new DefaultParser();
        CommandLine cmd = parser.parse(options, args);
        
        String argumentValue = cmd.getOptionValue("a");
        System.out.println("인자 값: " + argumentValue);
    }
}

예제 5: Spring Boot를 사용한 명령행 인자 처리

Spring Boot 프레임워크를 사용하여 명령행 인자를 처리하는 방법입니다. Spring Boot를 사용하면 @SpringBootApplication 애너테이션으로 기본적인 컨피규레이션을 설정할 수 있습니다.

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

@SpringBootApplication
public class CommandLineArgsExample {
    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(CommandLineArgsExample.class, args);
        
        for (String arg : args) {
            System.out.println("인자: " + arg);
        }
    }
}