Java : 명령 줄 인수가 null인지 확인
내 명령 줄 인수에 대한 오류 검사를 수행하려고합니다.
public static void main(String[] args)
{
if(args[0] == null)
{
System.out.println("Proper Usage is: java program filename");
System.exit(0);
}
}
그러나 이것은 범위를 벗어난 예외를 반환합니다. 나는 단지 적절한 사용법을 찾고 있습니다.
인수는 절대 null
. 그들은 단지 존재하지 않을 것입니다.
다시 말해, 당신이해야 할 일은 당신의 주장의 길이를 확인하는 것입니다.
public static void main(String[] args)
{
// Check how many arguments were passed in
if(args.length == 0)
{
System.out.println("Proper Usage is: java program filename");
System.exit(0);
}
}
@jjnguy의 대답은 대부분의 상황에서 정확합니다. 응용 프로그램을 실행하여 호출하면 정상적인 방식으로 명령 줄에서 실행되는 경우 null
인수 배열 (또는 null
배열)에 문자열 이 표시되지 않습니다 main
.
그러나 응용 프로그램의 다른 부분이 main
메서드를 호출하는 경우 null
인수 또는 null
인수 배열을 전달할 수 있습니다 .
그러나 (2), 이것은 분명히 매우 이례적인 사용 사례입니다, 그리고 그것은에 대한 묵시적 계약의 지독한 위반 main
진입 점 방법. 따라서 .NET에서 null
인수 값을 확인해야한다고 생각하지 않습니다 main
. 드물게 발생하는 경우 호출 코드가 NullPointerException
. 결국 계약을 위반하는 것은 호출자의 버그입니다.
이 지점을 확장하려면 :
args 변수 자체가 널 (null)이 될 수 있지만 정상적인 실행을 통해서는 불가능합니다. 일반 실행은 java.exe
명령 줄의 진입 점으로 사용 됩니다. 그러나 C++
JNI와 함께 컴파일 된 코드를 사용 jvm.dll
하여 java.exe를 완전히 우회하는 일부 프로그램을 보았습니다 . 이 경우 NULL
main 메서드 에 전달할 수 있으며이 경우 args는 null이됩니다.
항상 확인 if ((args == null) || (args.length == 0))
하거나 if ((args != null) && (args.length > 0))
필요에 따라 권장 합니다.
을 확인해야합니다 (args == null || args.length == 0)
. null
검사가 실제로 필요 하지는 않지만 좋은 방법입니다.
인수를 전달하지 않으면이 경우에도 args가 초기화되지만 항목 / 요소가 없습니다. 다음 중 하나를 시도하면 동일한 효과를 얻을 수 있습니다 .
public static void main(String[] args) throws InterruptedException {
String [] dummy= new String [] {};
if(dummy[0] == null)
{
System.out.println("Proper Usage is: java program filename");
System.exit(0);
}
}
참고 URL : https://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null
'your programing' 카테고리의 다른 글
곡선 경로를 따라보기 또는 이미지의 움직임을 애니메이션하려면 어떻게해야합니까? (0) | 2020.10.07 |
---|---|
서비스 의도를 시작할 수 없습니다. (0) | 2020.10.07 |
ARC를 사용한 @property 정의 : 강하거나 유지합니까? (0) | 2020.10.07 |
모듈을 여러 파일로 분할 (0) | 2020.10.07 |
Gradle 버전 1.10이 필요합니다. (0) | 2020.10.07 |