2012-03-07 2 views
14

다음 프로그램에서이 명령이 실행되면 (예 : 명령 줄을 통해) args JVM이 독립적으로 null이 아니겠습니까?Args가 null이 아닌 것이 보증 되었습니까?

public class test { 
    public static void main(String[] args) { 
    } 
} 
+0

예를 들어. 'args [0]': http://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null –

답변

10

짧은 대답 : 예, 길이는 0이지만 null이 아니어도됩니다.

+0

@casablanca, Java의 최신 버전을위한 것이 있습니까? –

+1

@Peter Lawrey : http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12 - Java 7 사양에서 변경된 것 같지 않습니다. – casablanca

1

두 번 클릭 할 수있는 응용 프로그램 MacOS의 응용 프로그램 번들은 명령 줄이 없어도 null이 아닌 배열이 여전히 main으로 전달됩니다.

주 메소드의 배열 매개 변수가 null 일 수 있는지 JVM 지정에서 지정하지 않습니다. https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-5.html#jvms-5.2

그러나 null이 아니므로 JVM 공급 업체가이 시점에서 해당 규칙을 위반할 가능성은 낮습니다.

2

Loading, Linking, and Initializing 섹션에 설명이 없습니다. Java 가상 머신 사양에는 null이 아닌 인수가 필요합니다.

따라서 null이 허용되어야하며, pedentically 프로그램은 null 인수를 처리 할 수 ​​있도록 준비되어야합니다. java 프로그램을 사용하여 Java 프로그램을 시작하여 Linux에서 JVM을 시작하는 것과 같은 일반적인 런타임 환경에서도 인수가 null 인 경우는 절대로 없습니다.

관련 문제