2012-03-07 14 views
14

निम्न प्रोग्राम में, यदि इसे निष्पादित किया गया है (उदा। कमांड लाइन के माध्यम से), तो क्या तर्क है कि जेवीएम स्वतंत्र रूप से शून्य नहीं होने की गारंटी देता है?Args गैर-शून्य होने की गारंटी है?

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

व्यक्तिगत मानों के लिए उदा। 'तर्क [0] ': http://stackoverflow.com/questions/3868878/java-check-if-command-line-arguments-are-null –

उत्तर

10

संक्षिप्त उत्तर: हाँ, इसकी लंबाई 0 हो सकती है लेकिन शून्य नहीं होगी।

+0

@ कैसाब्लांका, क्या जावा के हाल के संस्करण के लिए कुछ भी है? –

+1

@ पीटर लॉरी: http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12 - यह जावा 7 spec में परिवर्तित नहीं हुआ प्रतीत होता है। – casablanca

1

मैकोज़ पर डबल-क्लिक करने योग्य एप्लिकेशन बंडल में अभी भी एक गैर-शून्य सरणी मुख्य हो गई है, भले ही कोई कमांड लाइन प्रति-सी नहीं है।

जेवीएम विनिर्देश निर्दिष्ट नहीं करता है कि मुख्य विधि में सरणी पैरामीटर शून्य हो सकता है। https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-5.html#jvms-5.2

हालांकि, सम्मेलन यह है कि यह शून्य नहीं होगा और यह संभावना नहीं है कि एक जेवीएम विक्रेता इस बिंदु पर उस सम्मेलन को तोड़ देगा।

2

मुझे के Loading, Linking, and Initializing अनुभाग में कोई कथन नहीं मिल सकता है जावा वर्चुअल मशीन विशिष्टता जिसके लिए तर्कों को शून्य नहीं होना चाहिए।

तो यह माना जाना चाहिए कि null की अनुमति है, और, पैडेंटिक रूप से, आपका प्रोग्राम null तर्कों को संभालने के लिए तैयार होना चाहिए। यहां तक ​​कि यदि सामान्य रनटाइम वातावरण में, जैसे कि java प्रोग्राम का उपयोग कर जावा प्रोग्राम शुरू करना, लिनक्स पर एक जेवीएम शुरू करने के लिए, यह कभी भी ऐसा नहीं होगा कि तर्क null हैं।

संबंधित मुद्दे