उत्पन्न किया गया है मैं ग्रहण के साथ एक निष्पादन योग्य जार फ़ाइल बना सकता हूं। मान लें कि इसे ast.jar
कहा जाता है, और मुख्य श्रेणी ASTExplorer है। मैं सत्यापित कर सकता हूं कि यह java -jar ast.jar
के साथ काम करता है।एक्लिप्स के पीछे जादू निष्पादन योग्य जार फ़ाइल
फिर, मैं जार फ़ाइल को एक अलग निर्देशिका में अनजिप करता हूं और सत्यापित करता हूं कि ASTExplorer astexplorer निर्देशिका में है। लेकिन जब मैंने इस आदेश को java -cp . astexplorer.ASTExplorer
निष्पादित किया तो मुझे यह त्रुटि मिल गई।
java -cp . astexplorer/ASTExplorer
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
बात यह है कि जार फ़ाइल में कोई संगठन/ग्रहण/swt निर्देशिका नहीं है।
निष्पादन योग्य जार फ़ाइल के पीछे जादू क्या है? अनजिप होने पर यह क्यों नहीं चलता है?
आपको ग्रहण काले जादू के बिना, अपने जार को चींटी के साथ बनाने का प्रयास करना चाहिए। –
जब आप 'java -jar ast.jar' चलाते हैं तो आपका क्लासपाथ क्या होता है। जब आप जार फ़ाइल को अनपैक करते हैं तो आपका क्लासपाथ '.' है। मैं अनुमान लगा रहा हूं कि एक पर्यावरण परिवर्तनीय क्लासस्पैट कुछ ऐसा सेट है जो 'जावा -jar ast.jar' को काम करने की अनुमति देता है। – km1