OpenJDK 8 - RMIClassLoader

कक्षा RMIClassLoader




openjdk

कक्षा RMIClassLoader

public class RMIClassLoader
extends Object

RMIClassLoader में RMI के साथ डायनामिक क्लास लोडिंग का समर्थन करने के लिए स्थिर तरीके शामिल हैं। एक नेटवर्क स्थान (एक या अधिक URL) से कक्षाएं लोड करने और उस स्थान को प्राप्त करने के तरीके शामिल हैं, जिसमें से एक मौजूदा वर्ग को दूरस्थ दलों द्वारा लोड किया जाना चाहिए। इन विधियों का उपयोग RMI रनटाइम द्वारा तब किया जाता है जब दूरस्थ विधि कॉल के तर्क और वापसी मूल्यों में समाहित मर्सहॉलिंग और अनमर्सहॉलिंग कक्षाएं होती हैं, और आरएमआई के गतिशील वर्ग व्यवहार की नकल करने के लिए उन्हें सीधे अनुप्रयोगों द्वारा आमंत्रित किया जा सकता है।

निम्नलिखित स्थिर विधियों का कार्यान्वयन

उन विधियों के लिए सेवा प्रदाता इंटरफ़ेस RMIClassLoaderSpi उदाहरण द्वारा प्रदान किया गया है। जब विधियों में से एक को लागू किया जाता है, तो इसका व्यवहार सेवा प्रदाता के उदाहरण पर संबंधित विधि को सौंपना है। प्रत्येक विधि के लिए प्रलेखन में प्रदाता विधि के लिए प्रत्येक विधि कैसे निर्दिष्ट करती है, इसका विवरण दिया गया है।

सेवा प्रदाता का उदाहरण निम्नानुसार चुना गया है:

  • यदि सिस्टम गुण java.rmi.server.RMIClassLoaderSpi परिभाषित किया गया है, तो यदि इसका मान स्ट्रिंग "default" बराबर है, तो प्रदाता का उदाहरण getDefaultProviderInstance() विधि के एक आह्वान द्वारा लौटाया जाने वाला मान होगा, और किसी भी अन्य मूल्य के लिए, यदि संपत्ति के मूल्य के साथ नामित एक वर्ग सिस्टम क्लास लोडर द्वारा लोड किया जा सकता है (देखें ClassLoader.getSystemClassLoader() ) और वह वर्ग RMIClassLoaderSpi लिए असाइन किया RMIClassLoaderSpi और एक सार्वजनिक नो-तर्क निर्माता है, फिर उस निर्माता को बनाने के लिए आमंत्रित किया जाएगा। प्रदाता उदाहरण। यदि संपत्ति को परिभाषित किया गया है, लेकिन उन स्थितियों में से कोई भी अन्य सत्य नहीं है, तो एक अनिर्दिष्ट Error कोड में डाली जाएगी जो RMIClassLoader का उपयोग करने का प्रयास RMIClassLoader , जो प्रदाता के उदाहरण को प्राप्त करने में विफलता का संकेत देती है।
  • यदि META-INF/services/java.rmi.server.RMIClassLoaderSpi नामक संसाधन सिस्टम क्लास लोडर को दिखाई देता है, तो उस संसाधन की सामग्री को प्रदाता-कॉन्फ़िगरेशन फ़ाइल के रूप में व्याख्या की जाती है, और उस फ़ाइल में निर्दिष्ट पहला नाम है प्रदाता वर्ग नाम के रूप में उपयोग किया जाता है। यदि उस नाम के साथ एक वर्ग को सिस्टम क्लास लोडर द्वारा लोड किया जा सकता है और वह वर्ग RMIClassLoaderSpi लिए असाइन किया RMIClassLoaderSpi और उसके पास सार्वजनिक रूप से कोई तर्क नहीं है, तो उस निर्माता को प्रदाता आवृत्ति बनाने के लिए आमंत्रित किया जाएगा। यदि संसाधन पाया जाता है, लेकिन एक प्रदाता को वर्णित के रूप में RMIClassLoader नहीं किया जा सकता है, तो एक अनिर्दिष्ट Error कोड के लिए फेंक दी जाएगी जो RMIClassLoader का उपयोग करने का प्रयास करता है, जो प्रदाता के उदाहरण को प्राप्त करने में विफलता का संकेत देता है।
  • अन्यथा, प्रदाता का उदाहरण getDefaultProviderInstance() विधि के एक मंगलाचरण द्वारा लौटाया गया मान होगा।
जबसे:
JDK1.1
यह भी देखें:
RMIClassLoaderSpi

तरीके

loadClass

@Deprecated
public static Class<?> loadClass(String name)
                                      throws MalformedURLException,
                                             ClassNotFoundException

पदावनत। loadClass(String,String) विधि द्वारा प्रतिस्थापित किया गया

वर्ग को निर्दिष्ट name साथ लोड करता है।

यह विधि loadClass(String,String) को loadClass(String,String) पहले तर्क के रूप में null और दूसरे तर्क के रूप में name

पैरामीटर:
name - लोड करने के लिए वर्ग का नाम
यह दिखाता है:
लोड की गई कक्षा का प्रतिनिधित्व करने वाली Class वस्तु
फेंकता:
MalformedURLException - यदि एक प्रदाता-विशिष्ट URL जो कक्षाओं को लोड करने के लिए उपयोग किया जाता है, तो अमान्य है
ClassNotFoundException - यदि क्लास के लिए परिभाषा कोडबेस स्थान पर नहीं पाई जा सकती है
यह भी देखें:
loadClass(String,String)

loadClass

public static Class<?> loadClass(URL codebase,
                                 String name)
                          throws MalformedURLException,
                                 ClassNotFoundException

कोडबेस URL से एक वर्ग लोड करता है। यदि loadClass(String,String) null , तो यह विधि loadClass(String,String) साथ एक null codebase और दिए गए वर्ग नाम के समान व्यवहार करेगी।

यह विधि प्रदाता उदाहरण के RMIClassLoaderSpi.loadClass(String,String,ClassLoader) विधि को URL.toString() , दिए गए URL (URL को URL.toString() पर URL.toString() पर URL.toString() को लागू करने का परिणाम पारित करते हुए, पहले तर्क के रूप में, name दूसरा तर्क, और तीसरा तर्क के रूप में null

पैरामीटर:
codebase - URL को कक्षा से या null से लोड करने के लिए
name - लोड करने के लिए वर्ग का नाम
यह दिखाता है:
लोड की गई कक्षा का प्रतिनिधित्व करने वाली Class वस्तु
फेंकता:
MalformedURLException - यदि codebase null और कक्षाओं को लोड करने के लिए उपयोग किया जाने वाला प्रदाता-विशिष्ट URL अमान्य है
ClassNotFoundException - यदि वर्ग के लिए परिभाषा निर्दिष्ट URL पर नहीं मिल सकती है

loadClass

public static Class<?> loadClass(String codebase,
                                 String name)
                          throws MalformedURLException,
                                 ClassNotFoundException

कोडबेस URL पथ से एक वर्ग लोड करता है।

यह विधि प्रदाता उदाहरण के RMIClassLoaderSpi.loadClass(String,String,ClassLoader) विधि को प्रस्तुत करता है, पहले तर्क के रूप में codebase को पारित करता है, दूसरे तर्क के रूप में name , और तीसरे तर्क के रूप में null

पैरामीटर:
codebase - URL की सूची (रिक्त स्थान से अलग) को कक्षा से या null से लोड करने के लिए
name - लोड करने के लिए वर्ग का नाम
यह दिखाता है:
लोड की गई कक्षा का प्रतिनिधित्व करने वाली Class वस्तु
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो कक्षाओं को लोड करने के लिए उपयोग किया जाता है, तो अमान्य है
ClassNotFoundException - यदि वर्ग के लिए परिभाषा निर्दिष्ट स्थान पर नहीं मिली
जबसे:
1.2

loadClass

public static Class<?> loadClass(String codebase,
                                 String name,
                                 ClassLoader defaultLoader)
                          throws MalformedURLException,
                                 ClassNotFoundException

कोडबेस URL पथ से एक वर्ग लोड करता है, वैकल्पिक रूप से आपूर्ति लोडर का उपयोग कर। इस पद्धति का उपयोग तब किया जाना चाहिए जब कॉलर प्रदाता को कार्यान्वयन के लिए एक अतिरिक्त संदर्भीय क्लास लोडर उपलब्ध कराने के लिए उपलब्ध कराना चाहे, जैसे कि स्टैक पर कॉलर का लोडर। आमतौर पर, एक प्रदाता कार्यान्वयन दिए गए defaultLoader का उपयोग करके नामित वर्ग को हल करने का प्रयास करेगा, यदि निर्दिष्ट किया गया है, तो कोडबेस URL पथ से वर्ग को हल करने का प्रयास करने से पहले।

यह विधि प्रदाता उदाहरण के RMIClassLoaderSpi.loadClass(String,String,ClassLoader) विधि को पहले तर्क के रूप में, दूसरे तर्क के रूप में name और तीसरे तर्क के रूप में defaultLoader को defaultLoader है।

पैरामीटर:
codebase - URL की सूची (रिक्त स्थान से अलग) को कक्षा से या null से लोड करने के लिए
name - लोड करने के लिए वर्ग का नाम
defaultLoader - अतिरिक्त प्रासंगिक वर्ग लोडर का उपयोग करने के लिए, या null
यह दिखाता है:
लोड की गई कक्षा का प्रतिनिधित्व करने वाली Class वस्तु
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो कक्षाओं को लोड करने के लिए उपयोग किया जाता है, तो अमान्य है
ClassNotFoundException - यदि वर्ग के लिए परिभाषा निर्दिष्ट स्थान पर नहीं मिली
जबसे:
1.4

loadProxyClass

public static Class<?> loadProxyClass(String codebase,
                                      String[] interfaces,
                                      ClassLoader defaultLoader)
                               throws ClassNotFoundException,
                                      MalformedURLException

डायनेमिक प्रॉक्सी क्लास लोड करें ( Proxy देखें) जो कोडबेस URL पथ से दिए गए नामों के साथ इंटरफेस का एक सेट लागू करता है।

इंटरफेस दिए गए codebase का उपयोग करके loadClass(String,String) विधि के माध्यम से भरी हुई कक्षाओं के समान हल किया जाएगा।

यह विधि प्रदाता उदाहरण के RMIClassLoaderSpi.loadProxyClass(String,String[],ClassLoader) विधि को पहले तर्क के रूप में, दूसरे तर्क के रूप में interfaces और तीसरे तर्क के रूप में defaultLoader को defaultLoader है।

पैरामीटर:
codebase - URL की सूची (स्पेस-सेपरेटेड) को कक्षाओं से या null से लोड करने के लिए
interfaces - प्रॉक्सी क्लास को लागू करने के लिए इंटरफेस का नाम
defaultLoader - अतिरिक्त प्रासंगिक वर्ग लोडर का उपयोग करने के लिए, या null
यह दिखाता है:
एक गतिशील प्रॉक्सी वर्ग जो नामित इंटरफेस को लागू करता है
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो कक्षाओं को लोड करने के लिए उपयोग किया जाता है, तो अमान्य है
ClassNotFoundException - यदि नामित स्थानों में से एक के लिए परिभाषा निर्दिष्ट स्थान पर नहीं पाई जा सकती है, या यदि गतिशील प्रॉक्सी वर्ग का निर्माण विफल रहा है (जैसे कि Proxy दिए गए के लिए IllegalArgumentException फेंक देगा। इंटरफ़ेस सूची)
जबसे:
1.4

getClassLoader

public static ClassLoader getClassLoader(String codebase)
                                  throws MalformedURLException,
                                         SecurityException

एक क्लास लोडर देता है जो दिए गए कोडबेस URL पथ से कक्षाएं लोड करता है।

लौटाया गया क्लास लोडर क्लास लोडर है जो loadClass(String,String) विधि एक ही codebase तर्क के लिए कक्षाओं को लोड करने के लिए उपयोग करेगा।

यह विधि प्रदाता उदाहरण के RMIClassLoaderSpi.getClassLoader(String) विधि को RMIClassLoaderSpi.getClassLoader(String) , codebase को तर्क के रूप में पारित करता है।

यदि कोई सुरक्षा checkPermission , तो इसकी checkPermission विधि को RuntimePermission("getClassLoader") अनुमति के साथ लागू किया जाएगा; यह एक SecurityException में परिणाम हो सकता है। इस पद्धति का प्रदाता कार्यान्वयन यह सत्यापित करने के लिए आगे की सुरक्षा जांच भी कर सकता है कि कॉलिंग संदर्भ को कोडबेस URL पथ के सभी URL से कनेक्ट करने की अनुमति है।

पैरामीटर:
codebase - URL की सूची (स्पेस-सेपरेटेड) जिसमें से लौटा क्लास लोडर, या null से कक्षाओं को लोड करेगा
यह दिखाता है:
एक क्लास लोडर जो दिए गए कोडबेस URL पथ से कक्षाएं लोड करता है
फेंकता:
MalformedURLException - यदि codebase गैर- null और इसमें एक अमान्य URL है, या यदि codebase null और एक प्रदाता-विशिष्ट URL जो क्लास लोडर की पहचान करने के लिए उपयोग किया जाता है, तो अमान्य है
SecurityException - अगर कोई सुरक्षा प्रबंधक है और उसके checkPermission विधि का आह्वान विफल रहता है, या यदि कॉलर को कोडबेस URL पथ के सभी URL से कनेक्ट करने की अनुमति नहीं है
जबसे:
1.3

getClassAnnotation

public static String getClassAnnotation(Class<?> cl)

एनोटेशन स्ट्रिंग लौटाता है (वर्ग परिभाषा के लिए एक स्थान का प्रतिनिधित्व करता है) जो आरएमआई क्लास डिस्क्रिप्टर को एनोटेट करने के लिए उपयोग करेगा जब दिए गए वर्ग की वस्तुओं को मार्शेल करते हैं।

यह विधि प्रदाता उदाहरण के RMIClassLoaderSpi.getClassAnnotation(Class) विधि को प्रतिनिधि के रूप में पास करती है।

पैरामीटर:
cl - वर्ग के लिए एनोटेशन प्राप्त करने के लिए
यह दिखाता है:
दिए गए वर्ग को एनारोट करने के लिए एक स्ट्रिंग का उपयोग किया जाता है जब यह मार्शल्ड, या null हो जाता है
फेंकता:
NullPointerException - अगर cl null
जबसे:
1.2

getDefaultProviderInstance

public static RMIClassLoaderSpi getDefaultProviderInstance()

सेवा प्रदाता इंटरफ़ेस RMIClassLoaderSpi लिए डिफ़ॉल्ट प्रदाता की विहित आवृत्ति RMIClassLoaderSpi । यदि सिस्टम गुण RMIClassLoader परिभाषित नहीं है, तो RMIClassLoader स्थिर विधियाँ

सेवा प्रदाता उदाहरण के रूप में डिफ़ॉल्ट प्रदाता के विहित उदाहरण का उपयोग करेगा।

यदि कोई सुरक्षा प्रबंधक है, तो उसकी checkPermission विधि को RuntimePermission("setFactory") अनुमति के साथ लागू किया जाएगा; यह एक SecurityException में परिणाम हो सकता है।

डिफ़ॉल्ट सेवा प्रदाता उदाहरण RMIClassLoaderSpi को इस प्रकार लागू करता है:

RMIClassLoaderSpi.getClassAnnotation(Class) पद्धति कोडबेस URL पथ का प्रतिनिधित्व करते हुए एक String लौटाती है जिसे एक दूरस्थ पार्टी को निर्दिष्ट वर्ग के लिए परिभाषा डाउनलोड करने के लिए उपयोग करना चाहिए। लौटी स्ट्रिंग का प्रारूप रिक्त स्थान द्वारा अलग किए गए URL का एक पथ है। दिया गया कोडबेस स्ट्रिंग निर्दिष्ट वर्ग के परिभाषित श्रेणी लोडर पर निर्भर करता है:

  • यदि क्लास लोडर सिस्टम क्लास लोडर है (देखें ClassLoader.getSystemClassLoader() ), सिस्टम क्लास लोडर का एक अभिभावक जैसे लोडर इंस्टॉल किए गए एक्सटेंशन के लिए उपयोग किया जाता है, या बूटस्ट्रैप क्लास लोडर (जो null द्वारा दर्शाया जा सकता है), तो java.rmi.server.codebase प्रॉपर्टी का मान (या संभवतः पहले कैश किया गया मान) लौटाया गया है, या यदि वह प्रॉपर्टी सेट नहीं है, तो उसे वापस कर दिया जाता है।

  • अन्यथा, यदि क्लास लोडर URLClassLoader का एक उदाहरण है, तो लौटा हुआ स्ट्रिंग लोडर के getURLs तरीकों को लागू करके लौटाए गए URL के बाहरी रूपों की एक अंतरिक्ष-पृथक सूची है। यदि URLClassLoader को इस प्रदाता द्वारा अपने loadClass या loadProxyClass विधियों के मंगलाचरण की सेवा के लिए बनाया गया था, तो संबंधित कोडबेस स्ट्रिंग प्राप्त करने के लिए किसी भी अनुमति की आवश्यकता नहीं है। यदि यह एक अन्य मनमाने ढंग से URLClassLoader उदाहरण है, तो यदि कोई सुरक्षा प्रबंधक है, तो इसकी checkPermission विधि को प्रत्येक URL के लिए एक बार getURLs विधि द्वारा लौटा दिया जाएगा, साथ ही प्रत्येक URL पर openConnection().getPermission() को वापस लेने की अनुमति के साथ। यदि उनमें से कोई भी IOException एक SecurityException या IOException फेंकता है, तो IOException प्रॉपर्टी (या संभवतः पहले कैश्ड वैल्यू) का मान वापस आ जाता है, या यदि प्रॉपर्टी सेट नहीं होती है, तो उसे वापस कर दिया जाता है।

  • अंत में, यदि क्लास लोडर URLClassLoader उदाहरण नहीं है, तो URLClassLoader प्रॉपर्टी (या संभवतः पहले कैश्ड वैल्यू) का मान वापस आ जाता है, या यदि यह प्रॉपर्टी सेट नहीं होती है, तो उसे वापस कर दिया जाता है।

नीचे वर्णित विधियों के कार्यान्वयन के लिए, जो सभी codebase नाम का एक String पैरामीटर लेते हैं, जो कि URL की एक अलग-अलग सूची है, प्रत्येक आह्वान में एक संबद्ध कोडबेस लोडर होता है जिसे वर्तमान थ्रेड के संदर्भ वर्ग लोडर के साथ संयोजन में codebase तर्क का उपयोग करके पहचाना जाता है (देखें Thread.getContextClassLoader() )। जब कोई सुरक्षा प्रबंधक होता है, तो यह प्रदाता अपने मूल श्रेणी लोडर और उनके कोडबेस URL पथ (URL की एक सूचीबद्ध सूची) की जोड़ी द्वारा URLClassLoader क्लास लोडर इंस्टेंस (जो URLClassLoader कम से कम उदाहरण हैं) की एक आंतरिक तालिका बनाए रखता है। यदि codebase तर्क null , तो कोडबेस URL पथ सिस्टम प्रॉपर्टी java.rmi.server.codebase या संभवतः पहले कैश की गई वैल्यू का मान है। किसी दिए गए संदर्भ में नीचे दिए गए तरीकों में से किसी एक के आह्वान पर codebase तर्क के रूप में दिए गए कोडबेस URL पथ के लिए, कोडबेस लोडर निर्दिष्ट कोडबेस URL पथ और उसके माता-पिता के रूप में वर्तमान थ्रेड के संदर्भ वर्ग लोडर के साथ तालिका में लोडर है। । यदि ऐसा कोई लोडर मौजूद नहीं है, तो एक बनाया जाता है और तालिका में जोड़ा जाता है। तालिका अपने निहित लोडर के लिए मजबूत संदर्भों को बनाए नहीं रखती है, ताकि उन्हें और उनके परिभाषित वर्गों को इकट्ठा करने की अनुमति दी जा सके, जब अन्यथा उपलब्ध नहीं हो। किसी सुरक्षा प्रबंधक के साथ वर्चुअल मशीन में कथित रूप से लोड किए जाने से मनमाने ढंग से अविभाजित कोड को रोकने के लिए, यदि कोई सुरक्षा प्रबंधक सेट नहीं है, तो कोडबेस लोडर केवल वर्तमान थ्रेड के संदर्भ वर्ग लोडर (आपूर्ति किए गए कोडबेस URL पथ को अनदेखा किया जाता है, इसलिए दूरस्थ क्लास लोडिंग अक्षम है)।

RMIClassLoaderSpi.getClassLoader(String) विधि निर्दिष्ट कोडबेस URL पथ के लिए कोडबेस लोडर देता है। यदि कोई सुरक्षा प्रबंधक है, तो यदि कॉलिंग संदर्भ में कोडबेस URL पथ के सभी URL से कनेक्ट होने की अनुमति नहीं है, तो एक SecurityException को फेंक दिया जाएगा।

RMIClassLoaderSpi.loadClass(String,String,ClassLoader) विधि वर्ग को निर्दिष्ट नाम के साथ लोड करने का प्रयास करती है:

If the defaultLoader argument is non-null, it first attempts to load the class with the specified name using the defaultLoader, such as by evaluating 
     Class.forName(name, false, defaultLoader)
  If the class is successfully loaded from the defaultLoader, that class is returned. If an exception other than ClassNotFoundException is thrown, that exception is thrown to the caller. Next, the loadClass method attempts to load the class with the specified name using the codebase loader for the specified codebase URL path. If there is a security manager, then the calling context must have permission to connect to all of the URLs in the codebase URL path; otherwise, the current thread's context class loader will be used instead of the codebase loader.

RMIClassLoaderSpi.loadProxyClass(String,String[],ClassLoader) विधि एक गतिशील प्रॉक्सी वर्ग को नामित इंटरफ़ेस के साथ वापस करने का प्रयास करती है:

यदि defaultLoader तर्क गैर- null और सभी नामित इंटरफेस को उस लोडर के माध्यम से हल किया जा सकता है, तो,

  • यदि सभी हल किए गए इंटरफेस public , तो यह पहले कोडबेस लोडर में निर्धारित हल इंटरफेस के लिए एक गतिशील प्रॉक्सी क्लास ( Proxy का उपयोग Proxy ) प्राप्त करने का प्रयास करता है; यदि वह प्रयास एक IllegalArgumentException फेंकता है, तो यह defaultLoader में परिभाषित हल इंटरफेस के लिए एक गतिशील प्रॉक्सी वर्ग प्राप्त करने का प्रयास करता है। यदि दोनों प्रयास IllegalArgumentException फेंक देते हैं, तो यह विधि ClassNotFoundException फेंकता है। यदि किसी अन्य अपवाद को फेंक दिया जाता है, तो वह अपवाद कॉलर को फेंक दिया जाता है।
  • यदि सभी गैर- public हल किए गए इंटरफेस को एक ही वर्ग लोडर में परिभाषित किया गया है, तो यह उस लोडर में निर्धारित समाधानों के लिए एक गतिशील प्रॉक्सी वर्ग प्राप्त करने का प्रयास करता है।
  • अन्यथा, एक LinkageError को फेंक दिया जाता है (क्योंकि एक वर्ग जो निर्दिष्ट इंटरफेस के सभी को लागू करता है, उसे किसी भी लोड में परिभाषित नहीं किया जा सकता है)।

अन्यथा, यदि सभी नामित इंटरफेस कोडबेस लोडर के माध्यम से हल किए जा सकते हैं, तो,

  • यदि सभी हल किए गए इंटरफेस public , तो यह कोडबेस लोडर में हल किए गए इंटरफेस के लिए एक गतिशील प्रॉक्सी वर्ग प्राप्त करने का प्रयास करता है। यदि प्रयास एक IllegalArgumentException फेंकता है, तो यह विधि एक ClassNotFoundException फेंकता है।
  • यदि सभी गैर- public हल किए गए इंटरफेस को एक ही वर्ग लोडर में परिभाषित किया गया है, तो यह उस लोडर में निर्धारित समाधानों के लिए एक गतिशील प्रॉक्सी वर्ग प्राप्त करने का प्रयास करता है।
  • अन्यथा, एक LinkageError को फेंक दिया जाता है (क्योंकि एक वर्ग जो निर्दिष्ट इंटरफेस के सभी को लागू करता है, उसे किसी भी लोड में परिभाषित नहीं किया जा सकता है)।

अन्यथा, एक ClassNotFoundException नामांकित इंटरफ़ेस में से एक के लिए फेंक दिया जाता है जिसे हल नहीं किया जा सकता है।

यह दिखाता है:
डिफ़ॉल्ट सेवा प्रदाता का विहित उदाहरण
फेंकता:
SecurityException - अगर कोई सुरक्षा प्रबंधक है और उसके checkPermission विधि का आह्वान विफल रहता है
जबसे:
1.4

getSecurityContext

@Deprecated
public static Object getSecurityContext(ClassLoader loader)

पदावनत। कोई प्रतिस्थापन नहीं। जावा 2 प्लेटफॉर्म v1.2 के रूप में, आरएमआई अब क्लास लोडर की सुरक्षा संदर्भ प्राप्त करने के लिए इस पद्धति का उपयोग नहीं करता है।

दिए गए वर्ग लोडर का सुरक्षा संदर्भ देता है।

पैरामीटर:
loader - एक क्लास लोडर जिससे सुरक्षा संदर्भ मिलता है
यह दिखाता है:
सुरक्षा संदर्भ
यह भी देखें:
SecurityManager.getSecurityContext()