2010-09-02 15 views
35

मैं एंड्रॉइड के लिए जावा डेवलपमेंट शुरू करने वाला एक नेट डेवलपर हूं और जानना चाहता हूं कि जावा संकुल जैसे .Net assemblies के बारे में सोचना सही है या नहीं।एक जावा पैकेज एक .Net असेंबली के बराबर है?

उत्तर

50

सं

सबसे अच्छा तुलना एक जावा संग्रह (जार) फ़ाइल के साथ किया जाएगा। जावा नामस्थान को नियंत्रित करने के लिए संकुल का उपयोग करता है, और सी # के नामस्थानों के समान ही है।

यहाँ कैसे मैं वातावरण

Java     .Net 
====     ==== 
Class     Class 
Package     Namespace 
Jar      Assembly 
+1

मैं जोड़ूंगा कि नेट में एक असेंबली जावा में एक जार की तुलना में अधिक सूक्ष्म पहुंच संशोधक है (कम से कम, मैं इसे समझता हूं)। यह उत्तर एक ऐसा विवरण बताता है: http://stackoverflow.com/a/9808237/1168342 – Fuhrmanator

4

नहीं, मुझे लगता एक जावा पैकेज अधिक एक नाम स्थान

और एक विधानसभा अधिक एक जार की तरह होगा (मैं के रूप में मैं जावा के साथ और अधिक परिचित हूँ, इस बारे में इतना यकीन नहीं कर रहा हूँ करने के समान होगा नेट से ... मेरे को सही अगर मैं गलत हूँ)

+2

वहाँ कुछ भी नहीं-सब एक नए पैकेज बनाने के द्वारा java.lang नाम स्थान के लिए कक्षाएं जोड़ने से मुझे रोकने है । चेक अपवादों को तोड़ने के तरीकों में से एक ऐसा करने के लिए कहा जाता है (संकलन समय पर अपवाद और रनटाइम अपवाद को ओवरराइड करना)। – Joshua

+0

+1 आपका उत्तर विकी http://en.wikipedia.org/wiki/Java_package –

+0

@ जोशुआ को दर्शाता है, java.lang पैकेज में कक्षाएं जोड़ना केवल तभी संभव है जब आप कक्षा को अपने जार में डाल दें। यह केवल अतिरिक्त कक्षा के लिए भी काम करेगा। यदि आप अपवाद वर्ग को प्रतिस्थापित करने की कोशिश कर रहे थे, तो मुझे यकीन नहीं है कि यह संभव है क्योंकि जेआरई स्वयं को लोड करता है भले ही कोई क्लास्स्पैट परिभाषित न हो। –

1

एक जावा पैकेज .NET में एक नाम स्थान की तरह है की तुलना चाहते हैं।

जावा में एक असेंबली के बराबर जार फ़ाइल है।

1

जावा में एक पैकेज आमतौर पर कक्षाओं और इंटरफेस के लिए केवल नामस्थान का मतलब है, जिसका वास्तविकता एक विशिष्ट निर्देशिका संरचना है। कभी-कभी एक .jar फ़ाइल को पैकेज के रूप में भी जाना जाता है। यह संभवत: आप एक असेंबली के निकटतम निकटतम है। ए .jar फ़ाइल में अन्य डेटा जैसे छवियां, या मूल रूप से एक प्रकार की फ़ाइल भी हो सकती है क्योंकि यह कुछ विशिष्ट सामग्री संरचना के साथ फिर से एक ज़िप है।

किसी भी मामले में: आमतौर पर जब आप "जावा" के संबंध में "पैकेज" पढ़ते हैं, तो कुछ प्रकार के नामस्थान (फ़ोल्डर संरचना के माध्यम से, उदाहरण: com.mycompany.myproject) का मतलब है। इससे मदद नहीं मिलती है कि कुछ बिल्ड टूल्स बिल्डिंग की प्रक्रिया को संदर्भित करते हैं .jar फ़ाइल "पैकेजिंग" के रूप में ;-)

0

ध्यान रखें कि मैं जावा विशेषज्ञ से बहुत दूर हूं, लेकिन वैसे भी, यह मेरा ले जाता है इस पर:

जैसा कि अन्य उत्तरों द्वारा इंगित किया गया है, एक पैकेज एक असेंबली के बराबर नहीं है। हालांकि, मैं एक विधानसभा के बराबर एक .jar के विचार से पूरी तरह से सहमत नहीं हूं। मेरे लिए, जावा क्लास (.class फ़ाइल में निहित) एक .jar की तुलना में असेंबली के करीब है। मैं यह कारण कह रहा हूं जबकि सीएलआर के लिए लोड यूनिट असेंबली है (जिसका अर्थ है कि उस विधानसभा में निहित सभी वर्ग लोड हो जाते हैं), जेवीएम के लिए लोड यूनिट एक वर्ग है (जब JVM को कक्षा की आवश्यकता होती है, क्लासलोडर नहीं करता है कंटेनर जार में सभी वर्गों को लोड करें, यह सिर्फ उस विशिष्ट आवश्यक वर्ग को लोड करता है)। When does the JVM load classes?

और यहाँ:

आप जावा वर्ग लोड हो रहा है के बारे में अधिक पढ़ सकते हैं http://www.lansa.com/support/notes/p0294.htm

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