JDK vs JRE vs JVM in Java – Διαφορά μεταξύ τους
Βασική διαφορά μεταξύ JDK, JRE και JVM
- Το JDK είναι ένα κιτ ανάπτυξης λογισμικού, ενώ το JRE είναι ένα πακέτο λογισμικού που επιτρέπει Java πρόγραμμα για εκτέλεση, ενώ το JVM είναι ένα περιβάλλον για την εκτέλεση bytecode.
- Η πλήρης μορφή του JDK είναι Java Development Kit, ενώ η πλήρης μορφή του JRE είναι Java Runtime Environment, ενώ η πλήρης μορφή του JVM είναι Java Εικονική μηχανή.
- Το JDK και το JRE εξαρτώνται από την πλατφόρμα, ενώ το JVM είναι ανεξάρτητο από την πλατφόρμα σε επίπεδο bytecode, αλλά εξαρτάται από υλοποιήσεις συγκεκριμένης πλατφόρμας.
- Το JDK περιέχει εργαλεία για ανάπτυξη, εντοπισμό σφαλμάτων κ.λπ. Το JRE περιέχει βιβλιοθήκες κλάσεων και άλλα υποστηρικτικά αρχεία, ενώ τα εργαλεία ανάπτυξης λογισμικού δεν περιλαμβάνονται στο JVM.
- Το JDK συνοδεύεται από το πρόγραμμα εγκατάστασης, από την άλλη πλευρά, το JRE περιέχει μόνο το περιβάλλον για την εκτέλεση του πηγαίου κώδικα, ενώ το JVM είναι ομαδοποιημένο τόσο στο λογισμικό JDK όσο και στο JRE.
Τι είναι το JDK;
Το JDK είναι ένα περιβάλλον ανάπτυξης λογισμικού που χρησιμοποιείται για τη δημιουργία μικροεφαρμογών και Java εφαρμογές. Η πλήρης μορφή του JDK είναι Java Κιτ ανάπτυξης. Java οι προγραμματιστές μπορούν να το χρησιμοποιήσουν Windows, macOS, Solarisκαι Linux. Το JDK τους βοηθά να κωδικοποιήσουν και να εκτελέσουν Java προγράμματα. Είναι δυνατή η εγκατάσταση περισσότερων από μία εκδόσεων JDK στον ίδιο υπολογιστή.
Τι είναι το JRE;
Το JRE είναι ένα κομμάτι λογισμικού που έχει σχεδιαστεί για να τρέχει άλλο λογισμικό. Περιέχει τις βιβλιοθήκες κλάσεων, την κλάση φορτωτή και το JVM. Με απλά λόγια, αν θέλεις να τρέξεις Java πρόγραμμα που χρειάζεστε JRE. Εάν δεν είστε προγραμματιστής, δεν χρειάζεται εγκαταστήστε το JDK, αλλά μόνο JRE για να τρέξει Java προγράμματα. Ωστόσο, όλες οι εκδόσεις JDK συνοδεύονται από Java Runtime Environment, επομένως δεν χρειάζεται να κάνετε λήψη και εγκατάσταση του JRE ξεχωριστά στον υπολογιστή σας. Η πλήρης μορφή του JRE είναι Java Περιβάλλον χρόνου εκτέλεσης.
Τι είναι το JVM;
Το JVM είναι ένας κινητήρας που παρέχει ένα περιβάλλον χρόνου εκτέλεσης για την οδήγηση του Java Κώδικας ή εφαρμογές. Μετατρέπει Java bytecode στη γλώσσα μηχανής. Το JVM είναι μέρος του Java Run Environment (JRE). Δεν μπορεί να γίνει ξεχωριστή λήψη και εγκατάσταση. Για να εγκαταστήσετε το JVM, πρέπει να εγκαταστήσετε το JRE. Η πλήρης μορφή του JVM είναι Java Εικονική μηχανή.
Σε πολλές άλλες γλώσσες προγραμματισμού, ο μεταγλωττιστής παράγει κώδικα μηχανής για ένα συγκεκριμένο σύστημα. Ωστόσο, Java ο μεταγλωττιστής παράγει κώδικα για μια εικονική μηχανή που ονομάζεται JVM.
Γιατί να χρησιμοποιήσετε το JDK;
Ακολουθούν οι σημαντικοί λόγοι χρήσης του JDK:
- Το JDK περιέχει εργαλεία που απαιτούνται για την εγγραφή Java προγράμματα και JRE για την εκτέλεσή τους.
- Περιλαμβάνει μεταγλωττιστή, Java εκκίνησης εφαρμογών, Appletviewer κ.λπ.
- Ο μεταγλωττιστής μετατρέπει τον κώδικα που είναι γραμμένος Java σε κώδικα byte.
- Java η εφαρμογή εκκίνησης ανοίγει ένα JRE, φορτώνει την απαραίτητη κλάση και εκτελεί την κύρια μέθοδο του.
Γιατί να χρησιμοποιήσετε το JRE;
Εδώ είναι οι σημαντικοί λόγοι χρήσης του JRE:
- Το JRE περιέχει βιβλιοθήκες κλάσεων, JVM και άλλα υποστηρικτικά αρχεία. Δεν περιέχει κανένα εργαλείο για Java ανάπτυξη όπως ένας εντοπισμός σφαλμάτων, ο μεταγλωττιστής κ.λπ.
- Χρησιμοποιεί σημαντικές τάξεις πακέτων όπως μαθηματικά, swingetc, util, lang, awt και βιβλιοθήκες χρόνου εκτέλεσης.
- Αν πρέπει να τρέξεις Java μικροεφαρμογές, τότε το JRE πρέπει να εγκατασταθεί στο σύστημά σας.
Γιατί JVM;
Εδώ είναι οι σημαντικοί λόγοι χρήσης JVM:
- Το JVM παρέχει έναν τρόπο εκτέλεσης ανεξάρτητο από την πλατφόρμα Java πηγαίος κώδικας.
- Διαθέτει πολυάριθμες βιβλιοθήκες, εργαλεία και πλαίσια.
- Μόλις τρέξεις Java πρόγραμμα, μπορείτε να τρέξετε σε οποιαδήποτε πλατφόρμα και να εξοικονομήσετε πολύ χρόνο.
- Το JVM συνοδεύεται από μεταγλωττιστή JIT (Just-in-Time) που μετατρέπει Java πηγαίο κώδικα σε γλώσσα μηχανής χαμηλού επιπέδου. Ως εκ τούτου, τρέχει πιο γρήγορα ως κανονική εφαρμογή.
Χαρακτηριστικά του JDK
Ακολουθούν τα σημαντικά χαρακτηριστικά του JDK:
- Σας δίνει τη δυνατότητα να χειρίζεστε πολλαπλές επεκτάσεις σε ένα μόνο μπλοκ catch.
- Το JDK περιλαμβάνει όλες τις δυνατότητες που διαθέτει το JRE.
- Περιέχει εργαλεία ανάπτυξης όπως μεταγλωττιστή, εντοπισμό σφαλμάτων κ.λπ.
- Το JDK παρέχει το περιβάλλον για ανάπτυξη και εκτέλεση Java πηγαίος κώδικας.
- Μπορεί να εγκατασταθεί σε Windowsλειτουργικά συστήματα , Unix και Mac.
- Ο τελεστής Diamond μπορεί να χρησιμοποιηθεί για τον καθορισμό μιας διεπαφής γενικού τύπου αντί να γράψει την ακριβή.
Χαρακτηριστικά του JRE
Εδώ είναι τα σημαντικά χαρακτηριστικά του JRE:
- Java Το Runtime Environment είναι ένα σύνολο εργαλείων που χρησιμοποιεί το JVM στην πραγματικότητα.
- Το JRE περιέχει τεχνολογία ανάπτυξης, συμπεριλαμβανομένων Java Web Start και Java Plug-in.
- Οι προγραμματιστές μπορούν εύκολα να εκτελέσουν τον πηγαίο κώδικα στο JRE, αλλά δεν μπορούν να γράψουν και να μεταγλωττίσουν τον Java προγράμματος.
- Περιλαμβάνει βιβλιοθήκες ενοποίησης όπως Java Συνδεσιμότητα βάσεων δεδομένων (JDBC), Επίκληση απομακρυσμένης μεθόδου (RMI), Java Διεπαφή ονόματος και καταλόγου (JNDI) και πολλά άλλα.
- Το JRE έχει JVM και Java Πελάτης εικονικής μηχανής HotSpot.
Χαρακτηριστικά του JVM
Ακολουθούν τα σημαντικά χαρακτηριστικά του JVM:
- Σας δίνει τη δυνατότητα να εκτελείτε εφαρμογές σε περιβάλλον cloud ή στη συσκευή σας.
- Java Το Virtual Machine μετατρέπει τον κώδικα byte στον κώδικα του συγκεκριμένου μηχανήματος.
- Παρέχει βασικές λειτουργίες java όπως διαχείριση μνήμης, ασφάλεια, συλλογή σκουπιδιών και πολλά άλλα.
- Το JVM εκτελεί το πρόγραμμα χρησιμοποιώντας βιβλιοθήκες και αρχεία που δίνονται από Java Περιβάλλον χρόνου εκτέλεσης.
- Το JDK και το JRE περιέχουν και τα δύο Java Εικονική μηχανή.
- Μπορεί να εκτελέσει το πρόγραμμα java γραμμή προς γραμμή, επομένως ονομάζεται επίσης διερμηνέας.
- Το JVM προσαρμόζεται εύκολα, για παράδειγμα, μπορείτε να εκχωρήσετε ελάχιστη και μέγιστη μνήμη σε αυτό.
- Είναι ανεξάρτητο από το υλικό και το λειτουργικό σύστημα. Έτσι, μπορείτε να γράψετε ένα πρόγραμμα java μία φορά και να τρέξετε οπουδήποτε.
Πώς λειτουργεί το JDK;

Εδώ είναι τα σημαντικά στοιχεία του JDK:
- JDK και JRE: Το JDK επιτρέπει στους προγραμματιστές να δημιουργήσουν πυρήνα Java προγράμματα που μπορούν να εκτελεστούν από το JRE, το οποίο περιελάμβανε βιβλιοθήκες JVM και κλάσεων.
- Βιβλιοθήκες τάξης: Είναι μια ομάδα βιβλιοθηκών με δυνατότητα δυναμικής φόρτωσης που Java το πρόγραμμα μπορεί να καλέσει κατά την εκτέλεση.
- Μεταγλωττιστές: Πρόκειται για μια Java πρόγραμμα που δέχεται αρχείο κειμένου προγραμματιστών και μεταγλωττίζει σε Java αρχείο τάξης. Είναι η κοινή μορφή εξόδου που δίνεται από τον μεταγλωττιστή, η οποία περιέχει Java κωδικός byte. Σε Java, ο κύριος μεταγλωττιστής είναι Javac.
- Εντοπιστές σφαλμάτων: Ο εντοπισμός σφαλμάτων είναι α Java πρόγραμμα που επιτρέπει στους προγραμματιστές να κάνουν δοκιμή και εντοπισμό σφαλμάτων Java προγράμματα.
- JavaΈγγραφο: JavaΤο Doc είναι τεκμηρίωση που δημιουργήθηκε από τη Sun Microsystems για το Java. JavaΤο Doc μπορεί να χρησιμοποιηθεί για τη δημιουργία τεκμηρίωσης API σε αρχείο HTML από το πρόγραμμα προέλευσης
Πώς λειτουργεί το JRE;
Το JRE διαθέτει ένα παράδειγμα JVM με αυτό, τάξεις βιβλιοθήκης και εργαλεία ανάπτυξης. Μόλις γράψετε και μεταγλωττίσετε Java κώδικα, ο μεταγλωττιστής δημιουργεί ένα αρχείο κλάσης με κώδικα byte.
Εδώ είναι τα σημαντικά στοιχεία του JRE:
- Φορτωτές κατηγορίας: Ο φορτωτής κλάσης φορτώνει διάφορες κλάσεις που είναι απαραίτητες για την εκτέλεση του a Java πρόγραμμα. Το JVM χρησιμοποιεί τρεις φορτωτές κλάσης που ονομάζονται bootstrap class loader, extensions class loader και system class loader.
- Επαληθευτής κώδικα byte: Ο επαληθευτής κώδικα byte επαληθεύει τον bytecode έτσι ώστε ο κώδικας να μην ενοχλεί τον διερμηνέα.
- Διερμηνέας: Μόλις φορτωθούν οι κλάσεις και επαληθευτεί ο κώδικας, ο διερμηνέας διαβάζει τον κώδικα γραμμή προς γραμμή.
- Διάρκεια εκτέλεσης: Ο χρόνος εκτέλεσης είναι ένα σύστημα που χρησιμοποιείται κυρίως στον προγραμματισμό για να περιγράψει τη χρονική περίοδο κατά την οποία εκτελείται ένα συγκεκριμένο πρόγραμμα.
- Υλικό: Μόλις μεταγλωττίσετε Java εγγενής κώδικας, εκτελείται σε μια συγκεκριμένη πλατφόρμα υλικού.
Με αυτόν τον τρόπο, το Java το πρόγραμμα εκτελείται σε JRE.
Πώς λειτουργεί το JVM;
Εδώ είναι τα σημαντικά στοιχεία του JVM:
1) Class Loader
Ο φορτωτής κλάσης είναι ένα υποσύστημα που χρησιμοποιείται για τη φόρτωση αρχείων κλάσης. Εκτελεί τρεις κύριες λειτουργίες, δηλαδή. Φόρτωση, Σύνδεση και Αρχικοποίηση.
2) Περιοχή μεθόδου
Η περιοχή μεθόδου JVM αποθηκεύει τη δομή της κλάσης όπως τα μεταδεδομένα, τον κώδικα για Java μεθόδων, και τη συγκέντρωση σταθερού χρόνου εκτέλεσης.
3) Σωρός
Όλα τα Αντικείμενα, οι πίνακες και οι μεταβλητές παρουσίας αποθηκεύονται σε ένα σωρό. Αυτή η μνήμη μοιράζεται σε πολλά νήματα.
4) Στοίβες γλωσσών JVM
Java Οι στοίβες γλώσσας αποθηκεύουν τοπικές μεταβλητές και τα επιμέρους αποτελέσματά τους. Κάθε νήμα έχει τη δική του στοίβα γλώσσας JVM, που δημιουργείται ταυτόχρονα καθώς δημιουργείται το νήμα. Ένα νέο πλαίσιο δημιουργείται όταν γίνεται επίκληση της μεθόδου και αφαιρείται όταν ολοκληρωθεί η διαδικασία επίκλησης μεθόδου.
5) Μητρώα Η/Υ
Οι καταχωρητές υπολογιστή αποθηκεύουν τη διεύθυνση του Java εντολή εικονικής μηχανής, η οποία εκτελείται αυτήν τη στιγμή. Σε Java, κάθε νήμα έχει ξεχωριστό μητρώο υπολογιστή.
6) Στοίβες Native Method
Οι εγγενείς στοίβες μεθόδων κρατούν την εντολή του εγγενούς κώδικα εξαρτάται από την εγγενή βιβλιοθήκη. Εκχωρεί μνήμη σε εγγενείς σωρούς ή χρησιμοποιεί οποιονδήποτε τύπο στοίβας.
7) Μηχανή εκτέλεσης
Είναι ένας τύπος λογισμικού που χρησιμοποιείται για τη δοκιμή λογισμικού, υλικού ή ολοκληρωμένων συστημάτων. Ο κινητήρας εκτέλεσης δοκιμών δεν φέρει ποτέ καμία πληροφορία σχετικά με το ελεγμένο προϊόν.
8) Διεπαφή Native Method
Το Native Method Interface είναι ένα πλαίσιο προγραμματισμού. Επιτρέπει Java κώδικα, ο οποίος εκτελείται σε ένα JVM για κλήση από βιβλιοθήκες και εγγενείς εφαρμογές.
9) Βιβλιοθήκες Native Method
Οι εγγενείς βιβλιοθήκες είναι μια συλλογή των εγγενών βιβλιοθηκών (C, C++), τα οποία χρειάζονται η μηχανή εκτέλεσης.
Διαφορά μεταξύ JDK, JRE και JVM
Ακολουθούν οι κύριες διαφορές μεταξύ JDK έναντι JRE έναντι JVM:
| JDK | JRE | FMV |
|---|---|---|
| Η πλήρης μορφή του JDK είναι Java Κιτ ανάπτυξης. | Η πλήρης μορφή του JRE είναι Java Περιβάλλον χρόνου εκτέλεσης. | Η πλήρης μορφή του JVM είναι Java Εικονική μηχανή. |
| Το JDK είναι ένα κιτ ανάπτυξης λογισμικού για την ανάπτυξη εφαρμογών Java. | Είναι ένα πακέτο λογισμικού που παρέχει Java βιβλιοθήκες κλάσεων με τα απαραίτητα στοιχεία για εκτέλεση Java κώδικας. | Το JVM εκτελεί Java byte κώδικα και παρέχει ένα περιβάλλον για την εκτέλεσή του. |
| Το JDK εξαρτάται από την πλατφόρμα. | Το JRE εξαρτάται επίσης από την πλατφόρμα. | Το JVM είναι ανεξάρτητο από πλατφόρμα. |
| Περιέχει εργαλεία για την ανάπτυξη, τον εντοπισμό σφαλμάτων και την παρακολούθηση κώδικα java. | Περιέχει βιβλιοθήκες κλάσεων και άλλα υποστηρικτικά αρχεία που απαιτεί η JVM για την εκτέλεση του προγράμματος. | Τα εργαλεία ανάπτυξης λογισμικού δεν περιλαμβάνονται στο JVM. |
| Είναι το υπερσύνολο του JRE | Είναι το υποσύνολο του JDK. | Το JVM είναι ένα υποσύνολο του JRE. |
| Το JDK επιτρέπει στους προγραμματιστές να δημιουργούν Java προγράμματα που μπορούν να εκτελεστούν και να εκτελεστούν από το JRE και το JVM. | Το JRE είναι μέρος του Java που δημιουργεί το JVM. | Είναι η Java στοιχείο πλατφόρμας που εκτελεί τον πηγαίο κώδικα. |
| Το JDK συνοδεύεται από το πρόγραμμα εγκατάστασης. | Το JRE περιέχει μόνο περιβάλλον για την εκτέλεση πηγαίου κώδικα. | Το JVM ομαδοποιείται τόσο στο λογισμικό JDK όσο και στο JRE. |
