NoClassDefFoundError के लिए शेड प्लगइन के माध्यम से निर्भरता संकल्प
मेवेन के साथ पहले अनुभव में, एक्लिप्स और कमांड-लाइन उपयोग के बीच विसंगतियां उत्पन्न हो सकती हैं निर्भरता प्रबंधन. सफल मेवेन प्रोजेक्ट निर्माण और एक्लिप्स के भीतर निर्भरता जोड़ने के बावजूद, कमांड लाइन के माध्यम से प्रोजेक्ट को निष्पादित करने से NoClassDefFoundError हो सकता है।
डिफ़ॉल्ट रूप से, मेवेन निर्भरता को अलग से पैकेज करता है और उन्हें संकलित JAR फ़ाइल में शामिल नहीं करता है। निष्पादन के दौरान लाइब्रेरी कक्षाओं का पता लगाने का प्रयास करते समय यह चूक जावा वीएम को विफल कर देती है।
क्लासपाथ में मैन्युअल रूप से लाइब्रेरी जोड़ने के बजाय, मेवेन-शेड-प्लगइन एक अधिक कुशल समाधान प्रदान करता है। यह एक "uber-JAR" बनाता है जो एप्लिकेशन कक्षाओं को आवश्यक लाइब्रेरी कोड के साथ जोड़ता है।
इसे लागू करने के लिए, अपने POM में निम्नलिखित प्लगइन कॉन्फ़िगरेशन जोड़ें:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.5.2</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin>
इस कॉन्फ़िगरेशन को जोड़ने के बाद, निम्नलिखित कमांड को फिर से चलाएँ:
$ mvn package $ java -cp target/bil138_4-0.0.1-SNAPSHOT.jar tr.edu.hacettepe.cs.b21127113.bil138_4.App
उन्नत कॉन्फ़िगरेशन विकल्पों के लिए, जैसे शामिल JAR या एक निष्पादन योग्य JAR फ़ाइल को निर्दिष्ट करना, मेवेन-शेड-प्लगइन वेबसाइट पर "उदाहरण" अनुभाग देखें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3