java main(String[] args) 의 args 살펴보기
색다른 사실은 아니지만,
내가 모르고 있던 사실에 대해 확인이 필요한 것들이 있다.
그것은 내가 생각하고 고민하는 것들의 기초를 담당하기도 하기 때문에 그 사실을 확인하고 인지하는 것은 중요하다. 잘못하면 시작부터 꼬일 수 있기 때문.
매번 애플리케이션을 만들면서 main함수로 전달되는 args에 대한 확인 작업은 가소롭게 생각될 수 있지만 쓰임에 따라 중요한 사실을 확인하는 일이었다.
스프링 부트를 통해 스타드 애플리케이션을 만들어보면
public static void main(String[] args) throws IOException, Exception {
SpringApplication.run(SeleniumDemoApplication.class, args);
}
SpringApplication.run()이 호출 될 때 main에 받은 args를 전달하고 있다. 이는 스프링 부트의 프로퍼티와 기타 설정 정보를 이용하기 위한 용도인 것 같다.
따라서 기본 스프링부트 애플리케이션의 실행에서 jar 파일 실행 옵션으로 전달하는 프로퍼티 인자 외에 별도의 추가 옵션을 설정할 수 있는지에 대해 확인 및 테스트 한 결과 원했던 결과를 받았다.
System.out.println("args count =" + args.length);
for (int j = 0; j < args.length; j++ ) {
char obj[] = new char[args[j].length()];
args[j].getChars(0, args[j].length(), obj, 0);
StringBuffer sb = new StringBuffer();
for(int i = 0; i < obj.length;i++) {
System.out.println("문자 ["+ obj[i]+ ": ");
sb.append(obj[i]);
}
System.out.println(sb);
}
$ java -jar Demo-0.0.1-SNAPSHOT.jar --aaaa --bbbb
args count =2
문자 [-:
문자 [-:
문자 [a:
문자 [a:
문자 [a:
문자 [a:
--aaaa
문자 [-:
문자 [-:
문자 [b:
문자 [b:
문자 [b:
문자 [b:
--bbbb
안되던게 아니었고, 단지 몰랐던 것 뿐이었다.
할 수 없었던게 아니라 가볍게 생각하고 하지 않았던 것이다.
약간의 수고로움이 있다면 얼마던지 더 나은 방법을 찾을 수 있다. 가끔 잊어먹고 살고 있는 것 같다.
'프로그래밍 > Java' 카테고리의 다른 글
STS(Spring Tool Suite) 또는 이클립스에서 lombok 설정 (macOS기준) (0) | 2019.01.16 |
---|---|
Java프로그램 안에서 jar파일 실행하기 (0) | 2019.01.15 |
HTML에서 데이터 추출 (0) | 2019.01.02 |
여러가지 줄바꿈 코드(CR , LF) (0) | 2018.12.27 |
Spring AOP(Aspect Oriented Programming) (0) | 2018.12.21 |