JVM vs JRE
Java, platformlar arası bir programlama dilidir. Aynı zamanda “bir kez yaz, her yerde çalıştır” ilkesine de bağlıdır. Java ile yazılmış program, Java derleyicisi tarafından Java bayt koduna derlenebilir. Ardından bayt kodu, JRE (Java Runtime Environment) çalıştıran herhangi bir platformda yürütülebilir. JRE, JVM'yi (Java Sanal Makinesi), temel kitaplıkları (Java API'sini uygulayan) ve diğer destekleyici dosyaları içerir. JVM, platformlara özgü JRE ve Java kodu arasında aracı görevi gören soyut bir bilgi işlem makinesidir.
JVM nedir?
JVM, Java bayt kodunu yürütmek için makineler tarafından kullanılan bir sanal makine türüdür. Java'yı yakın zamanda Oracle tarafından satın alınana kadar geliştiren Sun Microsystems'e göre, dünyada 4 milyardan fazla JVM özellikli cihaz var. Daha spesifik olarak, Java Sanal Makinesi, standart donanım ve işletim sistemi üzerinde uygulanan soyut bir bilgi işlem makinesidir. JVM tarafından sağlanan önemli işlevlerden biri otomatik istisna işlemedir. Tipik olarak, JVM'ye bir standart kitaplık koleksiyonu eşlik eder. Aslında JRE, JVM'yi ve Java API'sini uygulayan sınıfları içeren bir pakettir. JVM, Java programlama dilinin “bir kez derle, her yerde çalıştır” doğasını barındıran çok önemli bir bileşendir. JVM çalıştığı sürece, makinede kullanılan platformdan bağımsız olarak Java kodunuz bunun üzerinde çalışabilir. Bu nedenle Java'ya platformlar arası veya çoklu platform dili denir.
JRE nedir?
JRE, Java kodunun çalıştırıldığı yürütme ortamıdır. Tipik olarak JRE, JVM'den, standart temel sınıflardan (temel Java API'sini uygulayan) ve diğer destekleyici dosyalardan oluşur. JRE'nin türü ve yapısı, işletim sistemine ve CPU mimarisine göre değişir. Java kodu çalıştırıldığında, JRE işletim sistemi ile iletişim kuracak ve bu da ilgili donanım bileşenleriyle konuşacaktır. JRE'nin sisteminizde kurulu olması, makinenizde herhangi bir java kodunu çalıştırmak için bir zorunluluktur. Ancak JRE, bir derleyici, hata ayıklayıcı veya Java programlarının geliştirilmesi için gereken diğer araçları (appletviewer ve javac gibi) içermez. Java'da program geliştirmeniz gerekiyorsa, JRE'yi de içeren JDK'ya (Java Geliştirme Kiti) sahip olmanız gerekir.
JVM ve JRE arasındaki fark nedir?
Günlük kullanımda JVM ve JRE terimleri birbirinin yerine kullanılsa da, aralarında farklılıklar vardır. JVM, işletim sisteminin üzerinde çalışan sanal bir makinedir, JRE ise çalışma zamanı yürütme ortamıdır. JVM, JRE'nin bir parçasıdır. JVM belirtimi, platforma özgü JRE uygulaması ile standart Java kitaplıkları arasında bağlantı görevi görür. Bu nedenle, JVM, programcıya iç uygulama ayrıntılarından soyutlamayı sağlayan varlıktır. Ve derlenmiş bayt kodunun yorumlanmasından sorumludur. Ancak JVM, Java bayt kodunu yürütmek için temel kitaplıklara ve diğer destekleyici dosyalara ihtiyaç duyar. Ancak bazen JRE, JVM'nin bir uygulaması olarak tanımlanır.