2010-06-22 30 views

उत्तर

35

आरटी = समय

यह सब जावा रनटाइम लाइब्रेरी शामिल हैं चलाएँ। (अनिवार्य)

46

इसमें जावा रनटाइम पर्यावरण में प्रदान की गई सभी कक्षाएं शामिल हैं।

यदि आपके पास अपने क्लासपाथ पर नहीं है तो आपको उन क्लासों तक पहुंच नहीं होगी जिन्हें आपको java.lang.String या java.io.File जैसे उपयोग करने की आवश्यकता है।

4

रनटाइम (आरटी.जेजर) जावा एसई बनाने वाले जावा वर्गों में से अधिकांश (अधिकांश ..) हैं। इसे स्वचालित रूप से कक्षा में जोड़ा जाता है।

7

इसमें जावा अंतर्निर्मित कक्षाएं हैं। rt शायद Runtime के लिए खड़ा है। इसके बिना आप Java प्रोग्राम नहीं चला सकते :)

+0

मुझे लगता है, आप कहते हैं, "यदि आप नहीं चल सकता है ..." चाहते हैं। –

+1

हां, ज़ाहिर है :) –

5

rt.jar वह जगह है जहां सभी जावा पैकेज रहते हैं। उदाहरण के लिए, यदि क्लास फ़ाइल java.util पैकेज के लिए कॉल करती है, तो JVM इसे rt.jar के अंदर देख सकता है, इस प्रकार इसे सही ढंग से चलाने में सक्षम बनाता है।

एक तरफ ध्यान दें: इसके साथ गड़बड़ न करें।

10

क्रॉस संकलन एक ऐसा मामला है जहां आपको इसका स्पष्ट रूप से उपयोग करना होगा।

उदा।, यदि आप जावा 8 पर हैं, और जावा 8 एक्सटेंशन को अस्वीकार करते समय जावा 7 को संकलित करना चाहते हैं। तो अगर आप की कोशिश कर सकते:

javac -source 1.7 Main.java 

लेकिन तब javac कहेंगे: warning: [options] bootstrap class path not set in conjunction with -source 1.7, क्योंकि यह उत्पन्न हो सकता है त्रुटि सह JCL के एक अलग संस्करण के खिलाफ संकलन।

तो तुम साथ rt.jar निर्धारित करने की आवश्यकता होगी:

javac -source 1.7 -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar Main.java 

इस पर कहा गया था: warning: [options] bootstrap class path not set in conjunction with -source 1.5

7

rt.jar क्रम जार के लिए खड़ा है और बूटस्ट्रैप कक्षाओं में शामिल है, मैं कोर से सभी वर्गों मतलब जावा एपीआई मैंने पाया है कि कई जावा प्रोग्रामर नहीं जानते कि rt.jar क्या है? और अक्सर rt.jar फ़ाइल की भूमिका के साथ भ्रमित या जावा में rt.jar फ़ाइल का उपयोग क्यों करते हैं? कोई आश्चर्य नहीं, नाम थोड़ा सा गूढ़ है।

यह फ़ाइल हमेशा जेआरई की lib निर्देशिका में रहते हैं, कम से कम विंडोज और लिनक्स में। मैकॉक्स में यह अलग-अलग स्थान पर रहता है और अलग-अलग नाम i.e. classes.jar है, लेकिन यह केवल जेडीके 1.7 से पहले है। जावा 7 रिलीज से ऐप्पल ने जावा को वितरित करना बंद कर दिया है और यदि आप अलग से इंस्टॉल करते हैं, तो इसका नाम rt.jar जैसा ही होगा।

कई डेवलपर कक्षाओं से संबंधित समस्याओं को हल करने के लिए अपने वर्गों को rt.jar के अंदर शामिल करना चाहते हैं, लेकिन यह एक बुरा विचार है। आपको rt.jar के साथ कभी गड़बड़ नहीं करना चाहिए, इसमें क्लास फाइलें हैं जो JVM द्वारा भरोसा करती हैं और कठोर सुरक्षा जांच के बिना लोड की जाती हैं, यह अन्य क्लास फ़ाइलों के लिए होती है।

2

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

तुम खुद जांच कर सकते हैं इस विकल्प के साथ एक जावा प्रोग्राम संकलन के द्वारा: आदेश वर्ग लोड के अनुक्रम को देखने के लिए

javac -verbose:class program.java 

नमूना:

[Loaded sun.security.timestamp.TimestampToken from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar] 
[Loaded sun.security.util.CertConstraintParameters from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar] 
[Loaded sun.security.util.ECKeySizeParameterSpec from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar] 
[Loaded sun.security.util.ECUtil from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar] 
[Loaded sun.security.util.Pem from /usr/lib/jvm/java-8-oracle/jre/lib/rt.jar] 
संबंधित मुद्दे