मेरे सैकड़ों उपयोगकर्ताओं में से एक और केवल मेरे जावा डेस्कटॉप ऐप को शुरू करने में परेशानी है। यह केवल उसके लिए एक तिहाई समय के लिए शुरू होता है। समय एक NullPointerException स्टार्टअप पर फेंक दिया जाता है के अन्य दो तिहाई:मैं इस जावा संदर्भ क्लासलोडर समस्या को सुरक्षित रूप से कैसे हल कर सकता हूं?
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:394)
at javax.swing.JEditorPane.registerEditorKitForContentType(JEditorPane.java:1327)
at javax.swing.JEditorPane.registerEditorKitForContentType(JEditorPane.java:1309)
at javax.swing.JEditorPane.loadDefaultKitsIfNecessary(JEditorPane.java:1387)
at javax.swing.JEditorPane.getKitTypeRegistry(JEditorPane.java:1344)
at javax.swing.JEditorPane.getEditorKitClassNameForContentType(JEditorPane.java:1340)
at javax.swing.JTextPane.<init>(JTextPane.java:76)
at myapp.Launcher$1.run(Launcher.java:13)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:633)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
मैं स्टैक ट्रेस का पालन किया है कारण यह है कि
Thread.currentThread().getContextClassLoader()
JEditorPane में
अशक्त लौट जाता है कि खोजने के लिए।
गुगलिंग से पता चलता है कि यह एक छद्म, बहुत कम, और रहस्यमय समस्या है जो कुछ लोगों को प्रभावित करती है।
मेरा सवाल है, मैं काम के आसपास के रूप में क्या कर सकता हूं? यह काम हो सकता है, अगर मैं इसे कहते एक EditorPane बनाने से पहले:
Thread.currentThread().setContextClassLoader(MyClass.class.getClassLoader());
लेकिन मैं सच में समझ में नहीं आता classloaders के साथ-साथ मैं चाहते हैं (और मैं उन्हें बेहतर समझने के लिए कोशिश की है)। मुझे लगता है कि EDT में संदर्भ क्लासलोडर को बदलने से खराब विधियां हो सकती हैं।
कोई विचार मैं क्या कर सकता हूं?
संपादित करें: मेरे पास जावा क्लासलोडर्स को अच्छी तरह से समझने वाले किसी के साथ कुछ पत्राचार था। ऐसा लगता है कि यह एक अस्पष्ट क्लासलोडर दौड़ की स्थिति है। यही है, जावा में एक बग।
उपयोगकर्ता के जावा रनटाइम उन्नत करने के लिए किसी भी मौका? –
@ तामास, यह एक मैक ऐप है। मैंने उसे नवीनतम मैक जावा अपडेट करने का प्रयास करने के लिए कहा। –