JVM vs JRE
Java és un llenguatge de programació multiplataforma. També s'adhereix al principi "escriure una vegada, executar en qualsevol lloc". El programa escrit en Java es pot compilar en codi de bytes de Java pel compilador de Java. Aleshores, el bytecode es pot executar a qualsevol plataforma que executi el JRE (Java Runtime Environment). JRE inclou la JVM (Java Virtual Machine), biblioteques base (que implementa l'API Java) i altres fitxers de suport. JVM és una màquina de computació abstracta que actua com a mediador entre el JRE específic de la plataforma i el codi Java.
Què és JVM?
JVM és un tipus de màquina virtual que les màquines utilitzen per executar bytecode Java. Segons Sun Microsystems (que va desenvolupar Java fins que va ser comprat per Oracle, molt recentment), hi ha més de 4.000 milions de dispositius habilitats per JVM al món. Més concretament, Java Virtual Machine és una màquina informàtica abstracta implementada en maquinari i sistema operatiu estàndard. Una de les funcionalitats importants que ofereix la JVM és la gestió automatitzada d'excepcions. Normalment, una col·lecció de biblioteques estàndard acompanya la JVM. De fet, JRE és un paquet que conté la JVM i les classes que implementen l'API Java. JVM és un component molt important, que s'adapta a la naturalesa "compilar una vegada, executar en qualsevol lloc" del llenguatge de programació Java. Mentre la JVM estigui en execució, el vostre codi Java es pot executar a sobre, independentment de la plataforma utilitzada a la màquina. És per això que Java s'anomena llenguatge multiplataforma o multiplataforma.
Què és JRE?
JRE és l'entorn d'execució on s'executa el codi Java. Normalment, JRE es compon de JVM, classes base estàndard (que implementen l'API Java base) i altres fitxers de suport. El tipus i l'estructura de JRE varien segons el sistema operatiu i l'arquitectura de la CPU. Quan s'executa el codi Java, el JRE es comunicarà amb el sistema operatiu, que al seu torn parlarà amb els components de maquinari corresponents. Tenir JRE instal·lat al vostre sistema és imprescindible per executar qualsevol codi java a la vostra màquina. Tanmateix, JRE no inclou un compilador, depurador ni cap altra eina necessària per al desenvolupament de programes Java (com ara appletviewer i javac). Si necessiteu desenvolupar programes en Java, heu de tenir el JDK (Java Development Kit), que també inclou el JRE.
Quina diferència hi ha entre JVM i JRE?
Tot i que, en l'ús quotidià, els termes JVM i JRE s'utilitzen indistintament, tenen les seves diferències. JVM és una màquina virtual que s'executa sobre el sistema operatiu, mentre que JRE és l'entorn d'execució en temps d'execució. JVM forma part del JRE. L'especificació JVM actua com a enllaç entre la implementació JRE específica de la plataforma i les biblioteques Java estàndard. Per tant, JVM és l'entitat que proporciona l'abstracció dels detalls interns de la implementació al programador. I és l'encarregat d'interpretar el bytecode compilat. Tanmateix, JVM necessita les biblioteques base i altres fitxers de suport per executar el bytecode java. Però de vegades, JRE s'identifica simplement com una implementació de JVM.