在下面的程序中,如果這是執行的(例如通過命令行),那麼獨立保證JVM的參數不能爲空?參數保證爲非空嗎?
public class test {
public static void main(String[] args) {
}
}
在下面的程序中,如果這是執行的(例如通過命令行),那麼獨立保證JVM的參數不能爲空?參數保證爲非空嗎?
public class test {
public static void main(String[] args) {
}
}
簡短回答:是的,它可能長度爲0,但不會爲空。
@casablanca,有什麼更新版本的Java? – 2012-03-07 16:46:27
@Peter Lawrey:http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12--這在Java 7規範中似乎沒有改變。 – casablanca 2012-03-07 16:49:30
雙點擊應用程序捆綁在Mac OS還是傳遞給主一個非空數組,即使是每本身沒有命令行。
的JVM規範沒有指定如果數組參數的主要方法可以爲空。請參閱 https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-5.html#jvms-5.2
但是,約定是非空的,並且在此時JVM供應商不太可能違反該約定。
我在的Loading, Linking, and Initializing部分找不到聲明Java虛擬機規範需要參數非空。
因此,必須假定null
是允許的,並且,在迂迴中,您的程序應該準備好處理null
參數。即使在典型的運行時環境中,例如使用java
程序啓動Java程序以在Linux上啓動JVM,也不會出現參數爲null
的情況。
對於各個值,例如'args [0]':http://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null – 2015-03-27 10:32:51