Διαφορά μεταξύ JVM και JRE
JVM vs JRE
Η Java είναι μια γλώσσα προγραμματισμού μεταξύ πλατφορμών. Επίσης, τηρεί την αρχή "γράψτε μία φορά, τρέξτε οπουδήποτε". Το πρόγραμμα γραμμένο σε Java μπορεί να μεταγλωττιστεί σε Java bytecode από τον μεταγλωττιστή Java. Στη συνέχεια, ο bytecode μπορεί να εκτελεστεί σε οποιαδήποτε πλατφόρμα που εκτελεί το JRE (Java Runtime Environment). Το JRE περιλαμβάνει το JVM (Java Virtual Machine), τις βασικές βιβλιοθήκες (που υλοποιεί το Java API) και άλλα αρχεία υποστήριξης. Το JVM είναι μια αφηρημένη υπολογιστική μηχανή που ενεργεί ως διαμεσολαβητής μεταξύ του JRE για την πλατφόρμα και του κώδικα Java.
Τι είναι η JVM;
Το JVM είναι ένας τύπος εικονικής μηχανής που χρησιμοποιείται από μηχανές για την εκτέλεση του bytecode Java. Σύμφωνα με την Sun Microsystems (που ανέπτυξε Java μέχρι να αγοραστεί από την Oracle, πολύ πρόσφατα), υπάρχουν περισσότερα από 4 δισεκατομμύρια συσκευές με δυνατότητα JVM στον κόσμο. Πιο συγκεκριμένα, η Java Virtual Machine είναι μια αφηρημένη υπολογιστική μηχανή που υλοποιείται σε τυποποιημένο υλικό και λειτουργικό σύστημα. Μία από τις σημαντικές λειτουργίες που παρέχει η JVM είναι ο αυτοματοποιημένος χειρισμός εξαιρέσεων. Συνήθως, μια συλλογή τυποποιημένων βιβλιοθηκών συνοδεύει την JVM. Στην πραγματικότητα, το JRE είναι μια δέσμη που περιέχει το JVM και τις κλάσεις που υλοποιούν το Java API. Το JVM είναι ένα πολύ σημαντικό συστατικό στοιχείο, το οποίο φιλοξενεί τη φύση της γλώσσας προγραμματισμού Java "καταρτίζουμε μια φορά". Όσο λειτουργεί το JVM, ο κώδικας Java μπορεί να τρέξει πάνω του, ανεξάρτητα από την πλατφόρμα που χρησιμοποιείται στο μηχάνημα. Αυτός είναι ο λόγος για τον οποίο η Java ονομάζεται γλώσσα πολλαπλών πλατφορμών ή πολλαπλών πλατφορμών.
Τι είναι το JRE;
Το JRE είναι το περιβάλλον εκτέλεσης στο οποίο εκτελείται ο κώδικας Java. Συνήθως, το JRE αποτελείται από το JVM, τις βασικές τάξεις βάσης (που υλοποιούν το βασικό Java API) και άλλα υποστηρικτικά αρχεία. Ο τύπος και η δομή του JRE ποικίλλουν ανάλογα με το λειτουργικό σύστημα και την αρχιτεκτονική της CPU. Όταν εκτελείται ο κώδικας Java, το JRE θα επικοινωνεί με το λειτουργικό σύστημα, το οποίο με τη σειρά του θα μιλήσει με τα αντίστοιχα εξαρτήματα υλικού. Έχοντας εγκατεστημένο το JRE στο σύστημά σας είναι απαραίτητο να εκτελέσετε οποιονδήποτε κώδικα Java στο μηχάνημά σας. Ωστόσο, το JRE δεν περιλαμβάνει μεταγλωττιστή, εργαλείο εντοπισμού σφαλμάτων ή άλλα εργαλεία που απαιτούνται για την ανάπτυξη προγραμμάτων Java (όπως το appletviewer και το javac). Εάν χρειάζεται να αναπτύξετε προγράμματα σε Java, πρέπει να έχετε το JDK (Java Development Kit), το οποίο περιλαμβάνει και το JRE.
Ποια είναι η διαφορά μεταξύ JVM και JRE;
Αν και στην καθημερινή χρήση οι όροι JVM και JRE χρησιμοποιούνται εναλλακτικά, έχουν τις διαφορές τους. Το JVM είναι μια εικονική μηχανή που τρέχει πάνω από το λειτουργικό σύστημα, ενώ το JRE είναι το περιβάλλον εκτέλεσης χρόνου εκτέλεσης. Η JVM είναι μέρος του JRE. Η προδιαγραφή JVM λειτουργεί ως σύνδεσμος μεταξύ της υλοποίησης JRE για την πλατφόρμα και των τυπικών βιβλιοθηκών Java.Επομένως, η JVM είναι η οντότητα που παρέχει την αφαίρεση από τις εσωτερικές λεπτομέρειες εφαρμογής στον προγραμματιστή. Και είναι υπεύθυνη για την ερμηνεία του compiled bytecode. Ωστόσο, η JVM χρειάζεται τις βιβλιοθήκες βάσης και άλλα υποστηρικτικά αρχεία για την εκτέλεση του bytecode του java. Αλλά μερικές φορές, το JRE απλά αναγνωρίζεται ως εφαρμογή της JVM.