2011-12-07 2 views
-2

쉬운 질문이지만 약간의 비정상적인 문제가 발생합니다.간단한 명령 행 프로그램이 예외를 throw합니다

public static void main(String [] st) { 

    System.out.println("\n\n Arg: :"+st.length); 
    for(int i=0;i<st.length;i++) { 
     System.out.println("ARGUMENTS: "+st[i]); 
    } 
} 

이 프로그램은 인쇄 전용 "의 Arg : 0"

출력 등은 또한
String s= st[0]; 
System.out.println("\n String: "+s); 

을 시도했지만 그것은 예외가 발생합니다. 제발 도와주세요.

+9

무엇이 문제인가 - 아무런 논점도 없습니다. 커맨드 라인을 지나가고 있습니까? –

+0

이 프로그램은 전에 실행했지만 지금은 문제가 생기고 st []를 초기화 할 필요가 없습니다. – Deep

+0

NullPointException 예외를 붙여 넣을 수 있습니까? –

답변

0

인덱스가 범위를 벗어난 예외가 있다고 가정합니다. 즉, 해당 문자열이 없을 때 인덱스 0에있는 문자열에 액세스하려고하고 있다는 의미입니다.

이 작업을 수행하는 두 가지 방법은 예외를주의 깊게 (무엇을 의미하는지 알고 있다고 가정) 보거나 디버거에서 코드를 단계별로 살펴보면 더 명확하게 보일 수 있습니다.

+0

이제는 이클립스에서 JDK의 문제 설정 작업을하고있다. 모든 답변을 주셔서 감사합니다. – Deep

1

시작시 프로그램에 매개 변수를 전달하지 않으면 st은 비어 있습니다. 따라서 배열의 첫 번째 항목을 참조하려고하면 NullPointerException이 발생합니다.

+0

최근에 시도해보십시오 Michael Brewer-Davis (String s : st)의 제안 사항 \t { System.out.println (s); \t \t \t} 그러나 Enythig는 표시되지 않습니다. – Deep

1

command line argsarrays에 대한 자습서를 참조하십시오.

C 및 다른 언어와의 특별한 차이점 중 하나는 프로그램 이름 자체가 인수 중 하나가 아니기 때문에 C main 함수에 항상 하나 이상의 인수가 있지만 Java main은 그렇지 않습니다.

관련 문제