Δεν ήταν δυνατή η εύρεση ή η φόρτωση της κύριας κλάσης Java; Δείτε πώς μπορείτε να το διορθώσετε!

Δεν ήταν δυνατή η εύρεση ή η φόρτωση της κύριας κλάσης Java; Δείτε πώς μπορείτε να το διορθώσετε!

Εάν συνεχίζετε να λαμβάνετε σφάλματα στην κύρια τάξη που δεν βρέθηκαν στο έργο σας Java χωρίς προφανή λόγο, μην ανησυχείτε, δεν είστε μόνοι.





Ως ένα από τα πιο απρόβλεπτα και αυθόρμητα λάθη, χάρη στην τάση της JVM (Java Virtual Machine) να παραμείνει σε μια προεπιλεγμένη διαδρομή, το ζήτημα «η κύρια τάξη δεν βρέθηκε» είναι κάτι που στοιχειώνει τόσο ερασιτέχνες όσο και επαγγελματίες.





Αλλά αυτό το ζήτημα είναι στην πραγματικότητα λιγότερο εκφοβιστικό από ό, τι φαίνεται. Διαβάστε παρακάτω για να μάθετε πώς μπορείτε να απαλλαγείτε από αυτό το σφάλμα μια για πάντα.





Γιατί δεν βρέθηκε η κύρια τάξη;

Πριν προσπαθήσουμε να καταλάβουμε πώς και γιατί η JVM δεν μπόρεσε να βρει την κύρια τάξη, πρέπει να κατανοήσουμε την έννοια του Διαδρομή τάξης στην Java.

Τι είναι το Classpath;

Το classpath είναι η διαδρομή αρχείου που αναζητά το περιβάλλον εκτέλεσης Java για κλάσεις και άλλα αρχεία πόρων. Μπορεί να ρυθμιστεί χρησιμοποιώντας είτε το -πορεία επιλογή κατά την εκτέλεση ενός προγράμματος ή με τη ρύθμιση του συστήματος CLASSPATH μεταβλητή περιβάλλοντος.



Όπως υποδηλώνει το όνομα, είναι απλά μια διαδρομή αρχείου όπου το .τάξη αρχεία μπορούν να βρεθούν σε ένα πακέτο ή κατάλογο JDK.

Όταν το JVM δεν είναι σε θέση να εντοπίσει την κύρια τάξη, είναι συχνά επειδή αναζητά την αντίστοιχη .τάξη αρχεία σε λάθος διαδρομή τάξης. Φυσικά, ο τρόπος για να διορθώσετε αυτό το πρόβλημα είναι να καθορίσετε με μη αυτόματο τρόπο το classpath είτε χρησιμοποιώντας πακέτα είτε καθορίζοντας το classpath.





Σε αυτό το σημείο, εάν θέλετε να ανανεώσετε τη μνήμη σας για τάξεις Java, ανατρέξτε στον οδηγό μας για δημιουργία κλάσεων στην Java Το

απεγκατάσταση του skype για επαγγελματικά windows 10

Χρήση πακέτων

Ας δημιουργήσουμε μια κλάση που ονομάζεται Δοκιμή Το Τοποθετήστε το σε μια συσκευασία που ονομάζεται testPackage Το Τα πακέτα χρησιμοποιούνται στην Java για να ομαδοποιήσουν παρόμοιες τάξεις μαζί ή να παρέχουν έναν μοναδικό χώρο ονομάτων για τάξεις.





Σε αυτό το απλό παράδειγμα, η χρήση ενός πακέτου θα σας βοηθήσει να απεικονίσετε πώς λειτουργεί η τάξη της Java. Στην εφαρμογή διαχείρισης αρχείων, ένα πακέτο αντιπροσωπεύεται ως ανεξάρτητος φάκελος.

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

Τώρα, ανοίξτε ένα νέο τερματικό και βεβαιωθείτε ότι ο κατάλογος εργασίας σας είναι ο ίδιος με αυτόν που περιέχει το φάκελο πακέτων. Μπορείτε να αλλάξετε τον κατάλογο εργασίας χρησιμοποιώντας το CD εντολή σε οποιοδήποτε λειτουργικό σύστημα.

Συντάσσω Test.java εκτελώντας την ακόλουθη εντολή:

package testPackage;
javac testPackage/Test.java

Αυτό θα αποθηκεύσει το μεταγλωττισμένο δυαδικό αρχείο (το αρχείο .class) στο testPackage.

Για να εκτελέσετε τη μεταγλωττισμένη κλάση, πρέπει να πληκτρολογήσετε το πλήρως αναγνωρισμένο όνομα κλάσης στη γραμμή εντολών. Το πλήρως αναγνωρισμένο όνομα μιας κλάσης Java αναφέρεται στο όνομα της που έχει προθετικό με το όνομα του πακέτου της. Σε αυτήν την περίπτωση, θα πρέπει να μοιάζει κάπως έτσι:

java testPackage.Test

Αυτός ο τρόπος κλήσης αρχείων κλάσης διασφαλίζει επίσης ότι μπορείτε να καλέσετε εκτελέσιμα από διαφορετικά πακέτα από τον ίδιο κατάλογο εργασίας. Το μόνο που έχετε να κάνετε είναι να τροποποιήσετε το πλήρως αναγνωρισμένο όνομα τάξης.

Σε πιο προηγμένες εφαρμογές, σας συνιστούμε να δημιουργήσετε ξεχωριστούς υποφακέλους για τις τάξεις σας και αρχεία προέλευσης για καλύτερη διαχείριση αρχείων μέσα στο πακέτο.

Χειροκίνητος καθορισμός διαδρομής

Ο προτεινόμενος τρόπος διαχείρισης των αρχείων java σας είναι η δημιουργία ξεχωριστών καταλόγων για αρχεία προέλευσης και κλάσεις. Εάν εργάζεστε σε ένα έργο, είναι πιθανό να το κάνετε ήδη.

Συμβατικά, ο κατάλογος με τα αρχεία προέλευσης φέρει την ετικέτα ως src και αυτό με αρχεία .class φέρει ετικέτα ως τάξεις. Αυτός είναι επίσης ένας τρόπος για να διασφαλιστεί ότι η πιθανότητα να μην βρεθεί η JVM στην κύρια τάξη μειώνεται σημαντικά, λόγω του σωστά δομημένου καταλόγου.

Εάν χρησιμοποιούμε αυτήν τη μέθοδο, αυτή είναι η δομή του καταλόγου πριν από τη μεταγλώττιση:

ο υπολογιστής μου δεν αναγνωρίζει τον εξωτερικό σκληρό δίσκο μου
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Κάθε περίπτωση στην παραπάνω εικόνα αντιστοιχεί σε ένα επίπεδο της ιεραρχίας αρχείων που πρέπει να ακολουθήσει το έργο σας.

Για να το μεταγλωττίσετε, βεβαιωθείτε ότι ο κατάλογος εργασίας σας είναι myFolder. Τώρα, πληκτρολογήστε την ακόλουθη εντολή:

javac -d classes src/testPackage/Test.java

ο .τάξη το εκτελέσιμο πρέπει να αποθηκευτεί στο myFolder/class/testPackage Το Κατά συνέπεια, η δομή του καταλόγου αρχείων μοιάζει κάπως έτσι: | _+_ |

Να τρέξει το .τάξη αρχείο, εκτελέστε την εντολή Java με το πλήρως αναγνωρισμένο όνομα κλάσης και καθορίστε την τοπική διαδρομή τάξης. Κάθε διαδρομή δηλώνεται σε σχέση με τον κατάλογο εργασίας, ο οποίος σε αυτή την περίπτωση είναι ο φάκελος myFolder.

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

Η εκτέλεση αυτής της εντολής θα σας δώσει την επιθυμητή έξοδο. Αλλά, γιατί χρειάζεται τόση αναδιοργάνωση για να λυθεί ένα απλό σφάλμα;

Η σημασία της οργάνωσης αρχείων στην Java

Ο λόγος για τον οποίο ρίχνεται το «Δεν μπορώ να βρω ή να φορτώσω την κύρια τάξη» είναι επειδή η JVM δεν μπόρεσε να βρει πού .τάξη τα αρχεία αποθηκεύονταν.

Ο ευκολότερος τρόπος για να επιλύσετε αυτό το σφάλμα είναι να ελέγξετε πού αποθηκεύονται τα αρχεία .class και να πείτε ρητά στην JVM να κοιτάξει εκεί. Αυτό καθίσταται δυνατό οργανώνοντας χωριστά τα αρχεία προέλευσης και τα εκτελέσιμα αρχεία σας και ελέγχοντας τα πάντα από έναν κατάλογο εργασίας.

Καθώς αρχίζετε να προσθέτετε κατασκευές όπως π.χ. κληρονομία στο έργο σας, η πολυπλοκότητα του συστήματος αρχείων θα αυξηθεί πολλαπλά. Σε τέτοια έργα ή ακόμα και εκείνα όπου απαιτείται η χρήση αρχείων JAR ή προσαρμοσμένων βιβλιοθηκών, η απλή πρακτική διαχωρισμού και διαχείρισης αρχείων μπορεί να σας εξοικονομήσει αμέτρητες ώρες αντιμετώπισης προβλημάτων και εντοπισμού σφαλμάτων.

Για να διαβάσετε περισσότερα για το πώς λειτουργεί το classpath στην Java και τα πολλά πράγματα που μπορείτε να ελέγξετε όταν πρόκειται να εκτελέσετε τον κώδικά σας, μπορείτε επίσης να ρίξετε μια ματιά στο Oracle's λεπτομερή και φιλική προς το χρήστη αναφορά Το

Μερίδιο Μερίδιο Τιτίβισμα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Τα 10 καλύτερα έργα για αρχάριους για νέους προγραμματιστές

Θέλετε να μάθετε προγραμματισμό αλλά δεν ξέρετε από πού να ξεκινήσετε; Αυτά τα αρχικά προγράμματα προγραμματισμού και τα σεμινάρια θα σας ξεκινήσουν.

πώς να διορθώσετε ένα τηλέφωνο που δεν θα ενεργοποιηθεί σε όλη τη διαδρομή
Διαβάστε Επόμενο Σχετικά θέματα
  • Προγραμματισμός
  • Ιάβα
Σχετικά με τον Συγγραφέα Γιάς Τσελάνι(Δημοσιεύθηκαν 10 άρθρα)

Ο Yash είναι ένας επίδοξος φοιτητής πληροφορικής που αγαπά να χτίζει πράγματα και να γράφει για όλα τα τεχνολογικά πράγματα. Στον ελεύθερο χρόνο του, του αρέσει να παίζει Squash, να διαβάζει ένα αντίγραφο του τελευταίου Murakami και να κυνηγά δράκους στο Skyrim.

Περισσότερα από τον Yash Chellani

Εγγραφείτε στο newsletter μας

Εγγραφείτε στο ενημερωτικό μας δελτίο για τεχνικές συμβουλές, κριτικές, δωρεάν ebooks και αποκλειστικές προσφορές!

Κάντε κλικ εδώ για εγγραφή