2011-12-01 3 views
0

실행 구성의 인수가 "출력"인 경우 아래 코드는 작동합니다. 그러나 인수가 비어 있으면 컴파일러에서 throw되고 ArrayOutOfBoundsException이 발생합니다.실행 구성에서 문자열을 인수로 사용하여 if 문에서 사용

이 코드 조각의 포인트는 결국 다음과 같습니다. - 실행 구성 인수에 -output이 쓰여질 때 작업 수행- 인수가 비어 있거나 -output과 다른 경우 다른 작업 수행

이렇게 많은 문제가 발견되었습니다. 하지만 저는 오랫동안 해결책을 찾고 있었기 때문에 새로운 포스트를 시작했습니다. 도움말은 대단히 감사하겠습니다.

... 
public static void main(String[] args) { 
     Version_5 v5 = new Version_5("Test"); 
     { 
      if(args[0].equals("-output")){ 
       System.out.println("It works"); 
      } 
     } 
    } 
... 

답변

1

먼저 논쟁이 있는지 확인해야합니다.

if ((args.length > 0) && (args[0].equals("-output")) { 
    ... 

또한 여러 개의 인수 분석 라이브러리를 사용할 수도 있습니다.

추가 브래킷은 무엇입니까?

+0

실제로 작동합니다. 매우 감사합니다. – Ype

+0

"Test"주변에 추가 대괄호가 있습니까? 이 코드는 실제 코드의 사본 붙여 넣기이므로 생성자는 String이라는 인수가 필요합니다. 분명히하기 위해서 : 그것은 내 질문과 아무 관련이 없습니다. 그러니 걱정 마세요. 도와 줘서 고마워. – Ype

+0

@ 예, 아니요, 그건 여분이 아닙니다. commnad-line args와 함께 전체 부분의'{}'. –

1

보시다시피 문자열 args[]은 특정 크기의 배열입니다. 인수를 전달하지 않으면 크기는 0입니다. args[0]에있는 내용을 확인하기 전에 args의 크기가 args.length인지 확인하십시오.

if (args.length>0){ 
    //do something 
} 
else if (args[0].equals("-output")){ 
    System.out.println("It works"); 
} 
+0

같지만 다르다. :) 도와 줘서 고마워. – Ype