Κατά τη μεταγλώττιση εμφανίζεται το εξής:
π.χ. java PrintMe.java
Exception in thread ''main" java.lang.NoClassDefFoundError: PrintMe/java
Ενώ 'έτρεχε' τις προηγουμενες φορες κανονικα
Κατά τη μεταγλώττιση εμφανίζεται το εξής:
π.χ. java PrintMe.java
Exception in thread ''main" java.lang.NoClassDefFoundError: PrintMe/java
Ενώ 'έτρεχε' τις προηγουμενες φορες κανονικα
Υποθέτω ότι εννοείς την εντολή javac PrintMe.java
Αυτό το λάθος σημαίνει ότι ο compiler της java δεν μπορεί να εντοπίσει την δήλωση της κλάσης που ορίζεται από το όνομα του αρχείου που προσπαθείς να μεταγλωττίσεις. Αυτό μπορεί να συμβαίνει για τους ακόλουθους λόγους:
- Το όνομα του αρχείου δεν ταυτίζεται με το όνομα της κλάσης που δηλώνεις (ΠΡΟΣΟΧΗ: Υπάρχει διάκριση κεφαλαίων - μικρών
- Έχεις δηλώσει ότι η κλάση που ορίζεις ανήκει σε κάποιο πακέτο, αλλά δεν την έχεις τοποθετήσει στο κατάλληλο directory.
- Έχεις κάποιο συντακτικό λάθος, που εμποδίζει τον compiler να καταλάβει τον ορισμό της κλάσης. Ιδιαίτερη προσοχή στις παρενθέσεις.
- Δεν έχεις ορίσει το classpath. Πολλές φορές, όταν γίνεται update ο compiler ή το runtime environment, αλλάζει η τιμή του classpath. Για να μπορεί να γίνει σωστά το compilation, πρέπει η μεταβλητή περιβάλλοντος classpath να περιλαμβάνει το τρέχον directory (.). Για να δείς την τιμή του classpath, και να προσθέσεις την ανάλογη καταχώριση, μπορείς να κάνεις δεξί click στο "My Computer" --> Properties --> Advanced --> Environment Variables
Αν τίποτε από τα παραπάνω δεν διορθώσει το πρόβλημά σου, τότε στείλε μας τον κώδικα του προγράμματος, για να δούμε μήπως μπορούμε να το διορθώσουμε.<