JDK, JRE ve JVM Arasındaki Farklar Nelerdir? (Mimari Anlatım)

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

1. Mimari Hiyerarşi​


Bu üç kavram iç içe geçmiştir. En dışta geliştirme araçlarını içeren JDK, onun içinde uygulamayı çalıştırmak için gereken JRE ve en merkezde ise kodun asıl koşturulduğu JVM yer alır.

2. JVM (Java Virtual Machine) - "Motor"​


JVM, Java mimarisinin kalbidir. Java kodunun donanımdan bağımsız çalışmasını sağlayan "sanal" bir bilgisayardır.


  • []Görevi: Java derleyicisi tarafından üretilen Bytecode'u (.class dosyaları) okur ve üzerinde çalıştığı işletim sisteminin (Windows, Linux, MacOS) anlayacağı makine diline çevirir.
    []Özelliği: Yazılım platformdan bağımsızdır ama JVM platforma özeldir. Windows için farklı, Linux için farklı bir JVM indirilir; ancak hepsi aynı bytecode'u çalıştırabilir.
  • Bileşenleri: Bellek yönetimi (Garbage Collector), JIT Compiler ve Class Loader.

3. JRE (Java Runtime Environment) - "Çalıştırma Ortamı"​


Eğer bir yazılımcı değilseniz ve sadece bilgisayarınızda bir Java uygulamasını çalıştırmak istiyorsanız, ihtiyacınız olan tek şey JRE'dir.


  • []Kapsamı: JVM + Kütüphane Dosyaları (Runtime Libraries).
    []Görevi: Java uygulamalarının çalışması için gereken ortamı sağlar. Kodun ihtiyaç duyduğu temel kütüphaneler (math, util, lang vb.) burada yer alır.
  • Farkı: JRE ile kod yazamazsınız veya derleyemezsiniz; sadece hazır yazılmış kodu "koşturursunuz".

4. JDK (Java Development Kit) - "Geliştirici Takım Çantası"​


Bir Java geliştiricisiyseniz, bilgisayarınıza yüklemeniz gereken asıl paket budur.


  • []Kapsamı: JRE + Geliştirme Araçları (Compiler, Debugger, Javadoc vb.).
    []Görevi: Kodu yazmanıza, derlemenize ve hatalarını ayıklamanıza yarar.
  • En Önemli Aracı: javac (Java Compiler). Yazdığınız .java dosyalarını JVM'in anlayacağı .class dosyalarına bu araç dönüştürür.

5. Kodun Yolculuğu: Mimari Özet​


Java kodunun nasıl işlendiğini bir kod bloğu ve akış üzerinden görelim:

Java:
// 1. ADIM: Kodu siz yazarsınız (JDK gereklidir)
public class Merhaba {
public static void main(String[] args) {
System.out.println("Merhaba Dünya!");
}
}


  1. []Derleme (JDK): Terminale javac Merhaba.java yazarsınız. JDK içindeki derleyici bunu Merhaba.class (Bytecode) haline getirir.
    []Paketleme (JRE): Uygulama çalıştırıldığında JRE gerekli kütüphaneleri yükler.
  2. Çalıştırma (JVM): JVM bu bytecode'u satır satır işleyerek ekrana "Merhaba Dünya!" yazdırır.

Karşılaştırma Tablosu​


ÖzellikJVMJREJDK
AçılımıVirtual MachineRuntime EnvironmentDevelopment Kit
İçerikSadece Yazılım MotoruJVM + KütüphanelerJRE + Derleme Araçları
Kullanım AmacıBytecode koşturmakUygulamayı çalıştırmakUygulamayı geliştirmek



Sonuç

Kısacası; JVM kodu çalıştıran motor, JRE o motorun çalışması için gereken yakıt ve yollar, JDK ise o motoru ve yolu inşa eden mühendisin kullandığı alet çantasıdır.
 
Geri
Üst