के बावजूद जावा NoClassDefFoundError मुझे कंसोल और/या एंटी के साथ जावा एप्लिकेशन चलाने के लिए कुछ परेशानी है। मुझे पता है कि बहुत से शुरुआती मुद्दे क्लासपाथ से सेट या गलत तरीके से सेट नहीं किए जा रहे हैं, हालांकि मुझे पूरा यकीन है कि मैंने इसे सही तरीके से सेट किया है, इसलिए मेरी खोज ने केवल उस पर परिणाम प्राप्त किए।सेट क्लासपाथ
यहां मेरे आवेदन का सामान्य सेटअप है: कक्षाएं संकुल मॉडल, दृश्य और नियंत्रक में हैं। नियंत्रक। नियंत्रक मुख्य विधि के साथ कक्षा है। मैं ऑब्जेक्ट डीबी का उपयोग अपने जेपीए प्रदाता के रूप में कर रहा हूं।
मैं अपने आवेदन को संकलित करने के लिए चींटी का उपयोग कर रहा हूं।
संकलन के बाद, मैं निम्नलिखित स्क्रिप्ट के साथ चींटी से अपने आवेदन चला सकते हैं:
<target name="run" description="default build process">
<java fork="true" classname="${main-class}">
<classpath>
<path refid="classpath" />
</classpath>
</java>
</target>
जहां $ {मुख्य स्तरीय} controller.Controller है और classpath (/ lib और/जिले फ़ोल्डरों के होते हैं आवेदन के जार फ़ाइल/जिले)
अब मैं/lib और/जिले से एक अलग फ़ोल्डर में सभी .jar फाइलों को कॉपी करने और उन्हें चलाने की कोशिश की java -jar cooking.jar -cp .
जो
Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Persistence
at model.jpa.JPAModelFactory.<init>(JPAModelFactory.java:28)
at model.jpa.JPAModelFactory.<init>(JPAModelFactory.java:24)
at controller.Controller.<init>(Controller.java:59)
at controller.Controller.main(Controller.java:116)
Caused by: java.lang.ClassNotFoundException: javax.persistence.Persistence
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more
में जो परिणाम के साथ करने के लिए संकलित किया गया है
<target name="run2" description="default build process">
<java fork="true" jar="${dist.dir}/${ant.project.name}.jar">
<classpath>
<path refid="classpath" />
</classpath>
</java>
</target>
जो एक ही त्रुटि में परिणाम: 63,210
तो मैं चींटी और थोड़ा करने के लिए निर्माण लक्ष्य से ऊपर संशोधित करने की कोशिश की। मुझे समझ में नहीं आता क्यों।
बस मुख्य वर्ग सीधे निर्दिष्ट करने के द्वारा यह परीक्षण करने के लिए, मैं कमांड लाइन से चल रहा है की कोशिश की: java -cp . controller.Controller
जो किसी कारण भी वर्ग नहीं ढूंढ सकते हैं (यह वहाँ है, मैं इस बात की पुष्टि):
Exception in thread "main" java.lang.NoClassDefFoundError: controller/Controller
Caused by: java.lang.ClassNotFoundException: controller.Controller
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: controller.Controller. Program will exit.
मैं JAVA_HOME को मेरे जेडीके के पथ पर सेट किया है, और क्लासस्पैट मेरे जेआरई/lib पथ पर है। क) क्यों जावा controller.Controller पता लगाने में असमर्थ है, भले ही यह .jar फ़ाइल में मौजूद है: ओएस विंडोज 7 64 बिट है, जावा संस्करण 1.6.0_25-B06
मैं दो बातें हैरान कर रहा हूँ और .jar फ़ाइल वर्तमान निर्देशिका में है? बी) मैं गलत क्या कर रहा हूं कि जावा के साथ जावा को कॉल करना लुकअप तंत्र को गड़बड़ कर रहा है।
किसी भी मदद की अत्यधिक सराहना की जाती है।
कक्षा-पथ और मुख्य श्रेणी प्रविष्टि के लिए आप अपनी Manifest.MF फ़ाइल में क्या देखते हैं? – CoolBeans
प्रकट-संस्करण: 1.0 चींटी-संस्करण: अपाचे चींटी 1.7.1 निर्मित-द्वारा: 20.0-B11 (सन माइक्रोसिस्टम्स इंक) मुख्य-क्लास: controller.Controller – Tobias