2010-03-24 15 views
5
package pack; 


public class sample{ 

public static void main(String input[]) 
    { 

     NumberFormat numberFormat = new DecimalFormat("#,##0.00##"); 
    System.out.println(numberFormat.format(44533125.00)); 

    } 
} 

कोड वर्तमान डीआईआर में ठीक काम कर रहा है .. (सी:/myprogram /)।थ्रेड "अप" में अपवाद java.lang.NoClassDefFoundError

इसके बाद मैं sample.class फ़ाइल की प्रतिलिपि बनाता हूं और इसे अन्य डीआईआर (डी:/myprogram) में पेस्ट करता हूं। मैं जबकि

 
Exception in thread "main" java.lang.NoClassDefFoundError: sample (wrong name: pack/sample) 

की तरह चल रहा है, जावा .class फ़ाइल में कहीं भी राइट चला सकते हैं त्रुटि मिली? लेकिन मैं दौड़ने में सक्षम क्यों नहीं हूं?

+4

यह एक समुदाय विकी क्यों है !?? – medopal

उत्तर

18

आपके पास पैकेज में कक्षा फ़ाइल होना चाहिए - इसलिए यह pack नामक निर्देशिका में होना चाहिए। आप का निर्माण कर रहे हैं

- तब classpath में मूल निर्देशिका के साथ, आप

java pack.sample 

चलाने चाहते हैं (और pack.Sample चलाने तुम भी वर्ग के नाम बदलना चाहिए परंपराओं का पालन करने के लिए है, btw नमूना करने के लिए।) जावैक के साथ, इसे मूल निर्देशिका बताने के लिए "-d" विकल्प निर्दिष्ट करें, और यदि आवश्यक हो तो यह उपयुक्त पैकेज संरचना बनाएगा। उदाहरण के लिए:

javac -d classes Sample.java 

या

javac -d classes src/pack/Sample.java 

(दोनों ही मामलों में) पैदा करेगा

classes/pack/Sample.class 

आप एक ही का उपयोग नहीं कर रहे हैं, तो फिर आप

java -cp classes pack.Sample 
+0

हाँ .. काम कर रहा है – Manu

-1

चला सकते हैं जावा/क्लास फ़ाइल आप पैकेज स्टेटमेन को भी हटा सकते हैं टी।

0

इंटेलिजे और शायद अन्य आईडीई आपके रन/डीबग कॉन्फ़िगरेशन को दोबारा नहीं मानते हैं। आपको अपने मुख्य वर्ग के नाम से पहले अपना पैकेज नाम मैन्युअल रूप से बदलना होगा। उदाहरण के लिए, 'sample.com' को 'com.company.package.ui.Main' में बदलें, इसलिए अगली बार जब आप इसे चलाने का प्रयास करेंगे तो यह ठीक से लॉन्च होगा। आईडीई पहले से ही लाल क्रॉस के साथ रन/डीबग बटन चिह्नित कर सकता है क्योंकि यह मुख्य वर्ग नहीं ढूंढ सका। जब आप रन/डीबग कॉन्फ़िगरेशन खोलते हैं तो यह चेतावनी भी देता है।

संबंधित मुद्दे