Skip to main content

☕ Java Geliştiricisi İçin Kılavuz: JDK, JRE ve JVM Farkları

Java’nın gücü, üç temel bileşenine dayanır: JDK, JRE ve JVM.
Bu üçlü, “Bir kere yaz, her yerde çalıştır” ilkesinin temelini oluşturur.
Bu rehberde, her bileşenin görevini, farklarını ve hangi durumda hangisinin kurulması gerektiğini öğreneceksiniz.


🧩 JDK, JRE ve JVM Rolleri

BileşenAçıklamaAmacıKimin İhtiyacı Var?
JDKJava Development Kit – Geliştirme araçlarını içerir.Java uygulaması yazmak, derlemek, çalıştırmak.Geliştiriciler
JREJava Runtime Environment – Çalıştırma ortamıdır.Derlenmiş Java programlarını çalıştırmak.Son kullanıcılar
JVMJava Virtual Machine – Bytecode’u yorumlar.Bytecode’u makine koduna çevirip yürütmek.JRE ile otomatik kurulur

⚙️ 1. Java Development Kit (JDK)

JDK, Java geliştirme için en kapsamlı pakettir.
İçinde JRE, javac derleyicisi, hata ayıklayıcı (debugger) ve diğer araçlar bulunur.

📦 Platform bağımlı: Her işletim sistemi (Windows, Linux, macOS) için özel sürümleri vardır.

javac -version

Bu komut, JDK kurulumunu doğrular.

💡 Ne zaman kurulur: Kod yazıyor veya Spring Boot gibi framework’lerle çalışıyorsan JDK şarttır.


⚙️ 2. Java Runtime Environment (JRE)

JRE, derlenmiş Java programlarını çalıştırmak için gereken ortamdır. Geliştirme araçları içermez, yalnızca çalışma kütüphaneleri ve JVM’yi barındırır.

📍 Kapsam: JDK’nın alt kümesidir. Yani JDK kurulduğunda JRE de otomatik olarak yüklenir.

💡 Ne zaman kurulur: Yalnızca hazır Java uygulamalarını (örneğin, bir masaüstü yazılımını) çalıştıracaksanız JRE yeterlidir.


⚙️ 3. Java Virtual Machine (JVM)

JVM, Java'nın platform bağımsızlığını sağlayan kalp mekanizmasıdır. Bytecode’u yerel makine koduna çevirerek her ortamda aynı sonucu verir.

🚀 Just-In-Time (JIT) Derleyici JIT, JVM’nin içinde yer alır ve performansı artırır. Sık çalıştırılan kodları çalışma anında makine koduna dönüştürür.

🧹 Garbage Collection (Çöp Toplama) JVM, kullanılmayan nesneleri otomatik olarak temizler. Bu sayede hafıza sızıntılarını önler ve bellek yönetimini optimize eder.


⚡ 4. JVM Performans Ayarları

Bellek yönetimi parametreleriyle JVM’yi hızlandırabilirsiniz.


java -Xms512m -Xmx2048m UygulamaAdi

-Xms: Başlangıç belleği, -Xmx: Maksimum bellek miktarı belirler.

Büyük ölçekli backend uygulamalarda bu değerleri artırmak performansı ciddi oranda iyileştirir.


💡 5. Pratik Kullanım Senaryoları

SenaryoKurulması Gereken
Kendi Java uygulamanı geliştiriyorsanJDK
Sadece bir Java programı çalıştıracaksanJRE
Performans optimizasyonu yapıyorsanJVM parametreleriyle çalış

🚨 Yaygın Hatalar ve Çözümler

HataSebepÇözüm
Java not foundPATH değişkeni eksiksudo apt install default-jdk
JAVA_HOME is not setOrtam değişkeni tanımlanmamış/etc/environment dosyasına ekleyin
Version mismatchJDK ve JVM farklı sürümdejava -version ve javac -version uyumlu olmalı
Permission deniedYetki eksikliğiKomutları sudo ile çalıştırın

💬 Sıkça Sorulan Sorular (SSS)

  1. JDK ve JRE arasındaki fark nedir? | Özellik | JRE | JDK | |----------|-----|-----| | Çalıştırma Ortamı | ✅ | ✅ | | Derleyici / Araçlar | ❌ | ✅ | | Kullanım Alanı | Yazılım çalıştırma | Yazılım geliştirme |

  2. JVM neden platform bağımlıdır?

Çünkü bytecode’u çalıştırdığı işletim sistemine özel makine koduna dönüştürür. Her OS için farklı JVM uygulaması bulunur.

  1. PATH değişkeni neden önemli?

PATH, sistemin java ve javac komutlarını bulduğu yoldur. Aksi halde her komutu tam dizinle çağırmanız gerekir.


🏁 Sonuç

Artık JDK, JRE ve JVM farklarını biliyorsunuz. JDK geliştirme için, JRE çalıştırma için, JVM ise her ikisinin temelinde yer alır. Ek olarak JIT derleyicisinin performansa nasıl katkı sağladığını da öğrendiniz.

☁️ Java projelerinizi Rabisu Bulut sanal sunucularında güvenle çalıştırabilir, optimize JVM ayarlarıyla maksimum performans elde edebilirsiniz. 🚀