जावा बनाम जावा पैकेज


385

Javax पैकेज के पीछे तर्क क्या है? क्या जावा में जाता है और क्या javax में?

मुझे पता है कि बहुत सारे एंटरप्राइज़-वाई पैकेज javax में हैं, लेकिन स्विंग, नई तारीख और समय एपी (JSR-310) और अन्य J2SE पैकेज हैं।



एक वैकल्पिक पैकेज एक खुले, मानक एपीआई (वैकल्पिक संकुल के उदाहरण के एक कार्यान्वयन है JavaServlet, Java3D)। अधिकांश वैकल्पिक पैकेज javax.*नाम स्थान में निहित हैं , हालांकि अपवाद हो सकते हैं।
लकी

जवाबों:


212

मुझे लगता है कि यह एक ऐतिहासिक बात है - अगर किसी पैकेज को मौजूदा JRE के अतिरिक्त के रूप में पेश किया जाता है, तो यह इस प्रकार आता है javax। यदि इसे पहली बार एक JRE के भाग के रूप में पेश किया गया है (जैसे NIO था, मुझे विश्वास है) तो यह इस प्रकार आता है java। यह निश्चित नहीं है कि नई तारीख और समय एपीआई javaxइस तर्क के बाद समाप्त हो जाएगा, हालांकि ... जब तक कि यह एक लाइब्रेरी के रूप में अलग से पहले के संस्करणों के साथ काम करने के लिए उपलब्ध नहीं होगा (जो उपयोगी होगा)। कई वर्षों बाद से नोट: यह वास्तव में javaसभी के बाद समाप्त हो रहा है ।

मेरा मानना ​​है कि javaपैकेज पर प्रतिबंध हैं - मुझे लगता है कि क्लास लोडर केवल कक्षाओं को ही या कुछ इसी तरह java.*से लोड करने की अनुमति देने के लिए सेट किए गए हैं rt.jar। (निश्चित रूप से एक जांच है ClassLoader.preDefineClass।)

संपादित करें: हालांकि एक आधिकारिक स्पष्टीकरण (खोज ऑर्बफ़िश ने सुझाव दिया है कि पहले पृष्ठ में एक उपज नहीं हुई है या नहीं) "कोर" बनाम "विस्तार" के बारे में कोई संदेह नहीं है, मुझे अभी भी संदेह है कि कई मामलों में किसी विशेष पैकेज के निर्णय में ए है इसके पीछे ऐतिहासिक कारण भी। है java.beansजावा के लिए है कि "मूल" उदाहरण के लिए, वास्तव में?


7
क्योंकि आ-रीडर को ऑल्ट-टी हिट करना और आईपैड का उपयोग करके उसे काटने और पेस्ट करने के लिए टाइप करना आसान है? ;)। आप सही कह रहे हैं, हालांकि, मुझे लगता है कि मेरा मतलब था download.oracle.com/javase/tutorial/ext/index.html । कोई अपराध BTW मैं आम तौर पर उपयोगी अपने जवाब मिल मैं सिर्फ हैरान कर रहा हूँ यह एक स्वीकार कर लिया गया।
orbfish

1
शब्द "javax" इस टिप्पणी थ्रेड में पहले सुझाए गए लिंक में कहीं भी प्रकट नहीं होता है।
पैम्पलेट

नई तारीख और समय एपीआई वास्तव में java.timeसब के बाद समाप्त हो जाएगा ।
माइकल पिफेल

234

मूल रूप से javaxएक्सटेंशन के लिए बनना था, और कभी कभी चीजों से बाहर पदोन्नत किया जाएगा javaxजावा में।

एक मुद्दा नेटस्केप (और शायद IE) वर्गों को सीमित कर रहा था जो जावा पैकेज में हो सकते हैं।

घुमाओ "अपना" करने के लिए स्थापित किया गया था जब javaसे javaxवहाँ एक की तरह था मिनी झटका है क्योंकि लोगों को एहसास हो गया है कि वे अपने आयात के सभी को संशोधित करने के लिए होगा। यह देखते हुए कि पश्चगामी संगतता जावा के प्राथमिक लक्ष्यों में से एक है, उन्होंने अपना दिमाग बदल दिया।

उस समय, कम से कम समुदाय के लिए (शायद सूर्य के लिए नहीं) पूरा बिंदु javaxखो गया था। तो अब हमारे पास javax में कुछ चीजें हैं जो शायद में होनी चाहिए java... लेकिन उन लोगों से अलग, जिन्होंने पैकेज के नाम को चुना, मुझे नहीं पता कि अगर कोई यह पता लगा सकता है कि केस-बाय-केस के आधार पर तर्क क्या है।


12
"जब स्विंग को जावा से जावा में" स्नातक "करने के लिए सेट किया गया था तो एक मिनी-ब्लो अप की तरह था क्योंकि लोगों ने महसूस किया कि उन्हें अपने सभी आयातों को संशोधित करना होगा।" लोग किसी ऐसी चीज के बारे में शिकायत कर रहे थे जो कि एक regex के साथ पूरा किया जा सकता है जो कि प्रीप्रोड्यूसिटन गुणवत्ता कोड का उपयोग करके उनका परिणाम था?
स्लेज

10
हाँ। मैंने विजुअल कैफ़े में एक उपकरण लिखा था ताकि दोनों (जावैक्स और जावा) के बीच में परिवर्तित हो सकें, इससे पहले कि सूर्य ने इसे जक्सैक्स पैकेज में रखने का फैसला किया।
टोफूबीर

51

javaसंकुल रहे हैं आधार है, और javaxसंकुल विस्तार है।

स्विंग एक विस्तार था क्योंकि AWT मूल UI API था। संस्करण 1.1 में स्विंग बाद में आया।


झूला 1.1 का हिस्सा नहीं था। एक स्विंग का एक संस्करण था जो एक पुस्तकालय के रूप में 1.1 पर चलता था।
टॉम हॉल्टिन

वहाँ कुंजी है - "लाइब्रेरी", JDK का हिस्सा नहीं है। क्या मेरे पास संस्करण गलत है? मेरे javadocs सुझाव है कि JButton 1.3 बाद से किया गया है, तो शायद मेरी स्मृति मुझे विफल रहा है।
duffymo

1
तो क्यों नई तारीख और समय एपीआई javax में है .. तारीख और समय "आधार" नहीं है?
पचेरियर

1
"... नई तारीख और समय एपीआई (JSR-310) ..." - ओरेकल / सन में किसी ने फैसला किया कि इसे बेहतर रूप से जेवैक्स में डाल दिया गया था, क्योंकि यह मुख्य पुस्तकालयों का एक नया विस्तार है। यदि आप असहमत हैं, तो उनके साथ इसे लेना सबसे अच्छा है।
डफिमो

केवल संदर्भ के लिए: उन्होंने उस निर्णय को वापस ले लिया, और JSR-310 के तहत रखा गया था java.time: docs.oracle.com/javase/8/docs/api/java/time/…
मार्क रोटेटेवेल

37

Javax नाम स्थान आमतौर पर (एक लोडेड शब्द है) मानक एक्सटेंशन के लिए उपयोग किया जाता है, वर्तमान में वैकल्पिक पैकेज के रूप में जाना जाता है । मानक एक्सटेंशन गैर-कोर एपीआई का एक सबसेट हैं; गैर-कोर एपीआई के दूसरे खंड को स्पष्ट रूप से गैर-मानक एक्सटेंशन कहा जाता है, जिसमें com.sun। या com.ibm जैसे नामस्थान हैं। । कोर एपीआई जावा ले। नाम स्थान।

जावा एपीआई दुनिया में सब कुछ नहीं कोर में शुरू होता है, जिसके कारण एक्सटेंशन आमतौर पर JSR अनुरोध से पैदा होते हैं। अंततः उन्हें 'बुद्धिमान वकील' के आधार पर कोर में पदोन्नत किया जाता है।

इस नामकरण में रुचि, सन के हिस्से पर एक फॉक्स पेस से बाहर आई - एक्सटेंशन को कोर में पदोन्नत किया जा सकता है, अर्थात javax से स्थानांतरित किया गया। * जावा से। * पिछड़े संगतता वादे को तोड़ते हुए। प्रोग्रामर रोया, और बेहतर समझ पैदा हुई। यही कारण है कि, स्विंग एपीआई हालांकि कोर का हिस्सा है, जेवाक्स में बना हुआ है। * नेमस्पेस। और यह भी कि कैसे पैकेजों को एक्सटेंशन से लेकर कोर तक प्रचारित किया जाता है - वे केवल JDK और JRE के हिस्से के रूप में डाउनलोड के लिए उपलब्ध कराए जाते हैं।


2

Javax केवल एक्सटेंशन के लिए उपयोग किया जाता है। फिर भी बाद में सूर्य जावा पुस्तकालय एक्स दूर करने के लिए भूल में जोड़ा। डेवलपर्स ने javax के साथ कोड बनाना शुरू किया। फिर भी बाद में समय के साथ सूरज ने इसे जावा में बदलने का फैसला किया। डेवलपर्स को यह विचार पसंद नहीं आया क्योंकि वे कोड बर्बाद हो जाएंगे ... इसलिए javax रखा गया था।


1

जावा। * पैकेज कोर जावा भाषा पैकेज हैं, जिसका अर्थ है कि जावा भाषा का उपयोग करने वाले प्रोग्रामर को जावा भाषा का कोई सार्थक उपयोग करने के लिए उनका उपयोग करना था।

javax। * पैकेज वैकल्पिक पैकेज हैं, जो जावा प्लेटफ़ॉर्म पर चलने वाले सभी एप्लिकेशनों को कस्टम API बनाने के लिए एक मानक, स्केलेबल तरीका प्रदान करता है।


0

पहले की तरह कुछ पैकेज javax.swingजावा मानक पुस्तकालय में शामिल नहीं थे। सन कंपनी ने उन्हें आधिकारिक रूप से विचार करने का फैसला किया और उन्हें मानक पुस्तकालयों या मानक एक्सटेंशन के रूप में जावा के शुरुआती संस्करणों में शामिल किया।

अधिवेशन के द्वारा, सभी मानक एक्सटेंशन Xथोड़ी देर से शुरू होते हैं, जो समय के साथ प्रथम श्रेणी में पदोन्नत हो सकते हैं जैसे कि क्या हुआ javax.swing

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.