다음 프로그램에서이 명령이 실행되면 (예 : 명령 줄을 통해) args JVM이 독립적으로 null이 아니겠습니까?Args가 null이 아닌 것이 보증 되었습니까?
public class test {
public static void main(String[] args) {
}
}
다음 프로그램에서이 명령이 실행되면 (예 : 명령 줄을 통해) args JVM이 독립적으로 null이 아니겠습니까?Args가 null이 아닌 것이 보증 되었습니까?
public class test {
public static void main(String[] args) {
}
}
짧은 대답 : 예, 길이는 0이지만 null이 아니어도됩니다.
@casablanca, Java의 최신 버전을위한 것이 있습니까? –
@Peter Lawrey : http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12 - Java 7 사양에서 변경된 것 같지 않습니다. – casablanca
두 번 클릭 할 수있는 응용 프로그램 MacOS의 응용 프로그램 번들은 명령 줄이 없어도 null이 아닌 배열이 여전히 main으로 전달됩니다.
주 메소드의 배열 매개 변수가 null 일 수 있는지 JVM 지정에서 지정하지 않습니다. https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-5.html#jvms-5.2
그러나 null이 아니므로 JVM 공급 업체가이 시점에서 해당 규칙을 위반할 가능성은 낮습니다.
의 Loading, Linking, and Initializing 섹션에 설명이 없습니다. Java 가상 머신 사양에는 null이 아닌 인수가 필요합니다.
따라서 null
이 허용되어야하며, pedentically 프로그램은 null
인수를 처리 할 수 있도록 준비되어야합니다. java
프로그램을 사용하여 Java 프로그램을 시작하여 Linux에서 JVM을 시작하는 것과 같은 일반적인 런타임 환경에서도 인수가 null
인 경우는 절대로 없습니다.
예를 들어. 'args [0]': http://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null –