दिलचस्प पोस्ट
केंद्र में छवि क्षैतिज रूप से getIntent () एक्स्ट्रा हमेशा नल कैश-कंट्रोल विशेषता का अनुरोध हैडर (सर्वर से क्लाइंट) क्यों भेजा गया है? क्या एक नियमित नियमित अभिव्यक्ति का पता लगाने के लिए एक नियमित अभिव्यक्ति है? जावा प्रयास / कैच प्रदर्शन, क्या इसे न्यूनतम रखने की कोशिश की जाती है? एक छवि से सफेद पृष्ठभूमि निकालें और इसे पारदर्शी बनाएं लाइव माइक्रो से pyudio के साथ नल का पता लगाएं Initializer_list के साथ मैं एक सदस्य सरणी कैसे प्रारंभ करूं? Ggplot2 का उपयोग करके मानचित्र पर पट्टी चार्ट को प्लॉटिंग करना? UI थ्रेड से जीयूआई अपडेट को फोर्स करें बेबेल 6 यह डिफ़ॉल्ट कैसे निर्यात करता है विज़ुअल स्टूडियो प्रोजेक्ट प्रॉपर्टी में विभिन्न "बिल्ड एक्शन" सेटिंग्स क्या हैं और वे क्या करते हैं? INSERT या दो शर्तों के साथ अद्यतन करें सी सरणी घोषणा और असाइनमेंट? Ansible के साथ लिनक्स पर्यावरण चर कैसे सेट करें

कमांड लाइन से एक जावा प्रोग्राम निष्पादित करते समय "गलत नाम" प्राप्त करना NoClassDefFoundError

मेरे जावा एप्लिकेशन को निष्पादित करने का प्रयास करते समय मुझे एक समस्या है जब भी मैं आदेश के माध्यम से प्रोग्राम निष्पादित करने की कोशिश करता हूँ

java ProgAudioJ 

मुझे यह त्रुटि मिलती है:

 Exception in thread "main" java.lang.NoClassDefFoundError: ProgAudioJ (wrong name: es_2011/ProgAudioJ) at java.lang.ClassLoader.defineClass1(NativeMethod) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) at java.lang.ClassLoader.defineClass(ClassLoader.java:616) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(NativeMethod) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) Could not find the main class: ProgAudioJ. Program will exit. 

अगर मैं अपने कोड से निकालता हूं:

 package es_2011; 

सब कुछ पूरी तरह से काम करता है मैं इस समस्या का समाधान कैसे करूं?

Solutions Collecting From Web of "कमांड लाइन से एक जावा प्रोग्राम निष्पादित करते समय "गलत नाम" प्राप्त करना NoClassDefFoundError"

क्योंकि मैं इन उत्तरों को अस्पष्ट पाया, यहां आपको क्या करना है सबसे पहले, यदि आप अपना कोड पैकेज करते हैं (IE आपके कक्षाओं में शीर्ष पर package कीवर्ड है) तो संकलित वर्गों को कोड में आपके पैकेज घोषणा के समान नाम से एक निर्देशिका में होना चाहिए। जब आप अपनी कक्षाओं को संकलित कर लें, तो आपको जवा कमांड को एक्सडिटेक्ट करते समय एक डायरेक्टरी बढ़ने की जरूरत होती है, और आप पैकेज का नाम शामिल करते हैं । उदाहरण के लिए, यदि आपका कोड /myFolder/myPackage/ में मौजूद है, और आपका क्लास package myPackage शुरू होता package myPackage (ध्यान दें कि निर्देशिका और पैकेज समान नाम हैं), तो आप निम्न (linux / osx) करेंगे:

 cd /myFolder/myPackage javac MyClass.java cd .. java myPackage.MyClass 

संपादित करें – कुछ को स्पष्ट करने के लिए देर से संपादित मैं देखता हूं कि लोगों को भ्रमित हो जाता है। ऊपर दिए गए उदाहरण में, पैकेज केवल एक गहरी है, जिसका अर्थ है कि इसका सिर्फ मेरा पैकेज है यदि आपके कोड में बड़ा पैकेज है, तो जैसे

 package com.somedomain.someproject; 

आपको उस आदेश से जावा कमांड निष्पादित करने की आवश्यकता होगी जिसमें उस पैकेज के रूट निर्देशिका शामिल है। उदाहरण के लिए यदि आपका कंपाइल किया गया कोड MyCode / com / somedomain / someproject / MyMainClass.class में है, तो आप मेरे कूट फ़ोल्डर से java कमांड को निष्पादित करेंगे, जैसे कि (फिर से, विशेष नोट लें कि निर्देशिका संरचना पैकेज के समान है घोषणा):

 cd /myCode java com.somedomain.someproject.MyMainClass 

उपयोग करने का प्रयास करें:

 java es_2011.ProgAudioJ 

( java ProgAudioJ बजाय)

मैं आपकी मौजूदा कार्यशील निर्देशिका और आपके CLASSPATH के बारे में यहां कुछ अनुमान लगा रहा हूं यदि आप उस कमांड के बारे में जानकारी प्रदान कर सकते हैं जिसे आप चला रहे हैं (जैसे कि आप किस निर्देशिका में हैं, जहां क्लास फ़ाइल है, आदि), हम आपको अधिक कुशलता से मदद कर सकते हैं।

इसे आज़माएं (संकलन और चलाएं):

dir

 2011-02-10 00:30 <DIR> . 2011-02-10 00:30 <DIR> .. 2011-02-10 00:27 58 es_2011 

javac es_2011 / ProgAudioJ

जाजा es_2011.प्रोग ऑडियोज़ा

यह काफी स्पष्ट रूप से कहा गया है:

java.lang.NoClassDefFound त्रुटि: ProgAudioJ (गलत नाम: es_2011 / ProgAudioJ)

यदि आप पैकेज (*) में एक क्लास डालना चाहते हैं, तो स्रोत कोड को इसी निर्देशिका में रखा जाना चाहिए, जैसे,

 src/Main.java <- root package (no declaration) src/es_2011/ProgAudioJ.java <- package es_2011; 

(*) आपको हमेशा यह करना चाहिए, छोटे फेंक-सामान के अलावा और संभवतः मुख्य कक्षा के लिए।

इसे इस्तेमाल करे,

  1. नीचे दिए गए आदेश का उपयोग करके अपनी कक्षा संकलित करें

     $ javac ProgAudioJ.java -d . 
  2. अपने आवेदन को आदेश से चलाएं

     $ java es_2011.ProgAudioJ 

इसका कारण यह है कि जब आप निकालते हैं तो यह काम करता है
package es_2011
यह है कि आप बदल रहे हैं कि कैसे संकलक संकुल ऊपर, और प्रभावी रूप से पता लगाता है, फ़ाइल।

मुझे एक ही समस्या थी – और त्रुटि संदेश wrong name: वास्तव में आपको जवाब देने की ओर संकेत करता है आप वर्ग नाम को चलाने के लिए "ProgAudioJ" नाम गलत नाम का प्रयोग कर रहे हैं। इसे पैक किया गया है

es_2011 / ProgAudioJ

इसे चलाने के लिए – आपको या तो एक निर्देशिका को ऊपर ले जाना है:

यदि आप यहां हैं: (विंडोज़) src\es_2011\
src\

फिर लाइन चलाएं:

java es_2011.ProgAudioJ

यह संकलक को प्रोजेड्यूएज को देखने के लिए कहता है- जो es_2011 पैकेज में रहता है। मानक स्थापना के लिए, यह फ़ोल्डर्स पर आधारित होगा – इसलिए यह पहले es_2011 फ़ोल्डर की खोज करेगा, और उसके बाद आप उस क्लासिक फ़ाइल का नाम देखेंगे जिसे आप चलाने के लिए चाहते हैं (प्रोगऑडियो)।