JDK ve JRE arasındaki fark nedir?
Rolleri nelerdir ve ne zaman birini ya da diğerini kullanmalıyım?
JDK ve JRE arasındaki fark nedir?
Rolleri nelerdir ve ne zaman birini ya da diğerini kullanmalıyım?
Yanıtlar:
JRE olduğunu Java Runtime Environment . Java Sanal Makinesi (JVM), Java Sınıf Kütüphanesi, java
komut ve diğer altyapı da dahil olmak üzere derlenmiş bir Java programını çalıştırmak için gereken her şeyin bir paketidir . Ancak, yeni programlar oluşturmak için kullanılamaz.
JDK olduğunu Java Development Kit , Java için tam özellikli SDK. JRE'nin sahip olduğu her şeye sahiptir, aynı zamanda derleyici ( javac
) ve araçlar ( javadoc
ve gibi jdb
). Program oluşturma ve derleme yeteneğine sahiptir.
Genellikle, yalnızca Java programlarının bilgisayarda çalıştırılmasını önemsiyorsanız, yalnızca JRE'yi yüklersiniz. Tüm ihtiyacınız olan bu. Öte yandan, bazı Java programlama yapmayı planlıyorsanız, bunun yerine JDK'yı yüklemeniz gerekir.
Bazen, bilgisayarda herhangi bir Java geliştirme yapmayı planlamasanız bile, JDK'nın yüklü olması gerekir. Örneğin, JSP ile bir web uygulaması dağıtıyorsanız, teknik olarak yalnızca uygulama sunucusunda Java programları çalıştırıyorsunuz demektir. O zaman neden JDK'ya ihtiyacınız var? Çünkü uygulama sunucusu JSP'yi Java sunucu uygulamalarına dönüştürür ve sunucu uygulamalarını derlemek için JDK kullanması gerekir. Daha fazla örnek olduğundan eminim.
Yukarıdaki cevap (Pablo tarafından) çok doğru. Bu sadece ek bilgi.
JRE adı, bir anlaşılacağı gibi, bir ortam . Temel olarak, Java ile ilgili dosyaları içeren bir dizi dizin:
bin/
Java'nın yürütülebilir programlarını içerir. En önemlisi, JVM'yi başlatan java
(ve Windows için javaw
de). Orada burada bazı diğer yarar da vardır gibi keytool
vepolicytool
.conf/
Java uzmanlarının oynatması için kullanıcı tarafından düzenlenebilir yapılandırma dosyaları içerir.lib/
çok sayıda destekleyici dosyaya sahiptir: bazı .jar
s, yapılandırma dosyaları, özellik dosyaları, yazı tipleri, çeviriler, sertifikalar, vb. - Java'nın tüm "kırpmaları". En önemlisi, aşağıdakileri modules
içeren bir dosyadır:.class
Java standart kitaplığının dosyalarını ..dll
(Windows) veya .dylib
(macOS) veya .so
(Linux) dosyaları içerir .bin/
lib/
JDK da dizinleri kümesidir. Bazı eklemelerle JRE'nin bir üst kümesidir:
bin/
geliştirme araçları ile büyütülmüştür. Bunlardan en önemlisi javac
; Başkaları içerir jar
, javadoc
ve jshell
.jmods/
Standart kitaplık için JMOD dosyalarını içeren dosya eklenmiştir. Bu dosyalar standart kütüphanenin kullanılmasına izin verir jlink
.JDK, JRE'nin bir üst kümesidir ve JRE'deki her şeyi, ayrıca uygulama ve uygulama geliştirmek için gerekli derleyiciler ve hata ayıklayıcılar gibi araçları içerir. JRE, Java programlama dilinde yazılmış uygulamaları ve uygulamaları çalıştırmak için kütüphaneleri, Java Sanal Makinesi'ni (JVM) ve diğer bileşenleri sağlar.
Layman terimleriyle: JDK büyükbabadır JRE baba ve JVM oğullarıdır. [yani JDK> JRE> JVM]
JDK = JRE + Geliştirme / hata ayıklama araçları
JRE = JVM + Java Paketleri Sınıfları (util, math, lang, awt, swing vb.) + Çalışma zamanı kitaplıkları.
JVM = Sınıf yükleyici sistemi + çalışma zamanı veri alanı + Execution Engine.
Başka bir deyişle, bir Java programcısıysanız, sisteminizde JDK'ya ihtiyacınız olacaktır ve bu pakette JRE ve JVM de yer alacaktır, ancak çevrimiçi oyun oynamaktan hoşlanan normal bir kullanıcıysanız, sadece JRE'ye ihtiyacınız olacak ve bu paketin İçinde JDK var.
JVM:
Java Virtual Machine (JVM) Java baytkodlarına çalıştırmak sanal makinedir. JVM, Java kaynak kodunu anlamıyor, bu nedenle JVM tarafından anlaşılabilecek bayt kodlarını içeren * .class dosyalarını elde etmek için * .java dosyalarınızı derliyorsunuz. Ayrıca Java'nın "taşınabilir bir dil" olmasına izin veren varlıktır (bir kez yaz, her yerde çalıştır). Aslında JVM'nin farklı sistemler için özel uygulamaları vardır (Windows, Linux, MacOS, wikipedia listesine bakın ..), amaç aynı bayt kodları ile hepsinin aynı sonuçları vermesidir.
JDK ve JRE
JDK ve JRE arasındaki farkı açıklamak için en iyisi Oracle belgelerini okumak ve şemaya başvurmaktır:
Java Çalışma Zamanı Ortamı (JRE)
Java Runtime Environment (JRE) Java programlama dili ile yazılmış uygulamaları ve uygulamaları çalıştırmak için kütüphaneleri, Java Virtual Machine ve diğer bileşenleri içerir. Ayrıca, iki önemli dağıtım teknolojisi JRE'nin bir parçasıdır: Java eklentisi, uygulamaların popüler tarayıcılarda çalışmasını sağlar; ve bağımsız uygulamaları bir ağ üzerinden dağıtan Java Web Start. Ayrıca, kurumsal yazılım geliştirme ve dağıtımı için Java 2 Platform, Enterprise Edition'daki (J2EE) teknolojilerin temelidir. JRE, uygulamaların ve uygulamaların geliştirilmesi için derleyiciler veya hata ayıklayıcılar gibi araçlar ve yardımcı programlar içermez.
Java Geliştirme Kiti (JDK)
JDK, JRE'nin bir üst kümesidir ve JRE'deki her şeyi ve ayrıca uygulama ve uygulama geliştirmek için gerekli derleyiciler ve hata ayıklayıcılar gibi araçları içerir.
Oracle'ın JDK sağlayan tek kişi olmadığını unutmayın.
Resmi java web sitesinden ...
JRE (Java Çalışma Zamanı ortamı):
JDK (Java Geliştirme Kiti)
Hata ayıklama açısından bir fark:
String ve ArrayList gibi Java sistem sınıflarında hata ayıklamak için, JRE'nin "hata ayıklama bilgileri" ile derlenen özel bir sürümüne ihtiyacınız vardır. JDK içinde bulunan JRE bu bilgileri sağlar, ancak normal JRE bunu sağlamaz. Düzenli JRE, daha iyi performans sağlamak için bu bilgileri içermez.
Hata ayıklama bilgileri nedir? İşte bu blog yazısından alınan kısa bir açıklama :
Modern derleyiciler, iyi girintili ve iç içe geçmiş kontrol yapıları ve keyfi olarak girilmiş değişkenleri ile makine kodu (veya Java durumunda bayt kodu) adı verilen büyük bir bit yığınına, üst düzey kodunuzu dönüştürmek için oldukça iyi bir iş çıkarır. hedef CPU'da (JVM'nizin sanal CPU'su) mümkün olduğunca hızlı çalıştırmak için. Java kodu çeşitli makine kodu yönergelerine dönüştürülür. Değişkenler her yere itilir - yığına, kayıtlara veya tamamen optimize edilmiştir. Yapılar ve nesneler ortaya çıkan kodda bile mevcut değildir - sadece sabit kodlu ofsetlere bellek tamponlarına dönüştürülen bir soyutlamadır.
Peki, bir hata ayıklayıcı, bazı fonksiyonların girişinde kırılmasını istediğinizde nerede duracağını nasıl bilir? Bir değişkenin değerini sorduğunuzda size ne göstereceğinizi nasıl bulabilir? Cevap - bilgi hata ayıklama.
Hata ayıklama bilgileri, makine kodu ile birlikte derleyici tarafından oluşturulur. Yürütülebilir program ile özgün kaynak kodu arasındaki ilişkinin bir temsilidir. Bu bilgiler önceden tanımlanmış bir biçimde kodlanır ve makine kodunun yanında saklanır. Farklı platformlar ve yürütülebilir dosyalar için yıllar boyunca bu tür birçok format icat edilmiştir.
JVM, JRE, JDK - bunların hepsi Java dilinin bel kemiğidir. Her bileşen ayrı ayrı çalışır. JDK ve JRE fiziksel olarak var ancak JVM, fiziksel olarak var olmadığı anlamına gelen soyut bir makinedir.
JVM , "bayt kodu" olarak bilinen ara kodu kontrol etmek için kullanılan JDK ve JRE'nin alt sistemidir. Önce Java derleyicisi (javac) tarafından oluşturulan "sınıf dosyasını" (.c uzantılı) JVM alt sistemi sınıf yükleyicisi ve kullanımlarına göre sınıflandırılmış bellek konumu (sınıf alanı, yığın, yığın ve pc kayıtları) aracılığıyla yükler. Daha sonra Java'da döndürüldüğünden ve ağ tarafından tüm bellek erişilebilirlik erişiminden emin olmak için tüm bayt kodunu kontrol eder. Tercümanın çalışması bundan sonra tüm programı satır satır kontrol ettiği yerden başlar. Sonuçlar nihayet konsolda / tarayıcıda / uygulamada, çalışma zamanı olan JRE (Java Runtime Environment) aracılığıyla gösterilir.
JRE ayrıca JVM, sınıflar, .jar dosyası gibi yürütülebilir dosyalar sağlayan bir JDK alt sistemidir.
JDK , Java Geliştirme Kiti'nin kısaltmasıdır. Java programlamasında kullanılan sınıf, yöntem, swing, AWT, paket, Java (tercüman), javac (derleyici), appletviewer (applet uygulama görüntüleyici) vb. Gibi gerekli tüm bileşenleri içerir. bağımsız veya web tabanlı uygulamalar.
JRE
JRE, Java Runtime Environment için bir kısaltmadır. Runtime ortamı sağlamak için kullanılır. JVM uygulamasıdır. Fiziksel olarak mevcuttur. JVM'nin çalışma zamanında kullandığı kütüphaneler + diğer dosyaları içerir.
JDK
JDK, Java Geliştirme Kiti'nin kısaltmasıdır. Fiziksel olarak mevcuttur JRE + geliştirme araçlarını içerir.
Bağlantı: - http://www.javatpoint.com/difference-between-jdk-jre-and-jvm
Genellikle, Java programlarını tarayıcınızda veya bilgisayarınızda çalıştırmayı önemsediğinizde yalnızca JRE'yi yüklersiniz. Tüm ihtiyacınız olan bu. Öte yandan, bazı Java programlama yapmayı planlıyorsanız, JDK'ya da ihtiyacınız olacaktır.
JVM, JRE ve JDK platforma bağlıdır, çünkü her işletim sisteminin yapılandırması farklıdır. Ancak, Java platformdan bağımsızdır.
Java Sanal Makinesi (JVM), Java bayt kodunu çalıştıran bir çalışma zamanı sistemidir.
JRE, Java uygulamalarını çalıştırmak için gereken ortamdır (standart kütüphaneler ve JVM).
JDK, JRE plus uygulamacıkları ve uygulamaları geliştirmek için gerekli veya yararlı olan derleyiciler ve hata ayıklayıcılar gibi komut satırı geliştirme araçlarını içerir.
İşte doğrudan Oracle'dan basit bir yanıt http://docs.oracle.com/javase/7/docs/technotes/guides/
Java SE Çalışma Zamanı Ortamı (JRE)
JRE, Java programlama dilinde yazılmış uygulamaları ve uygulamaları çalıştırmanız için gereken kütüphaneleri, Java sanal makinesini ve diğer bileşenleri sağlar. Bu çalışma zamanı ortamı, bağımsız olmalarını sağlamak için uygulamalarla yeniden dağıtılabilir.
Java SE Geliştirme Kiti (JDK)
JDK, JRE plus uygulamacıkları ve uygulamaları geliştirmek için gerekli veya yararlı olan derleyiciler ve hata ayıklayıcılar gibi komut satırı geliştirme araçlarını içerir.
Java programlarını çalıştırmak ancak geliştirmek istemiyorsanız, Java Çalışma Zamanı Ortamı'nı veya JRE yazılımını indirin. Bunları geliştirmek istiyorsanız, Java Geliştirme kitini veya JDK'yı indirin
JDK olarak adlandırılan bir takımdır, java uygulamaları geliştirmek ve çalıştırmak için gereken şeyleri içeren bir kittir.
JDK, bina uygulamaları, bileşenler ve uygulamalar için geliştirme ortamı olarak verilir.
Java uygulamalarını derlenmiş biçimde çalıştırmak için ihtiyacınız olan her şeyi içerir. Herhangi bir kütüphaneye ve başka bir şeye ihtiyacınız yok. İhtiyacınız olan her şey derlenir.
JRE geliştirme için kullanılamaz, sadece uygulamaları çalıştırmak için kullanılır.
JVM (Java Sanal Makinesi) soyut bir makinedir. Java bayt kodunun çalıştırılabileceği çalışma ortamı sağlayan bir özelliktir.
JRE, Java Runtime Environment için bir kısaltmadır. Runtime ortamı sağlamak için kullanılır. JVM'nin uygulanmasıdır.
JDK, Java Geliştirme Kiti'nin kısaltmasıdır. Fiziksel olarak mevcuttur JRE + geliştirme araçlarını içerir
Bir Java programcısıysanız , sisteminizde JDK'ya ihtiyacınız olacak ve bu pakete JRE ve JVM de dahil olacak, ancak çevrimiçi oyun oynamaktan hoşlanan normal bir kullanıcıysanız , sadece JRE'ye ihtiyacınız olacak ve bu paketin içinde JDK olmayacak .
JVM
JVM (Java Sanal Makinesi) soyut bir makinedir. Java bayt kodunun çalıştırılabileceği çalışma ortamı sağlayan bir özelliktir.
JVM'ler birçok donanım ve yazılım platformunda kullanılabilir. JVM, JRE ve JDK platforma bağımlıdır, çünkü her işletim sisteminin yapılandırması farklıdır. Ancak, Java platformdan bağımsızdır.
JRE
Java uygulamalarını derlenmiş biçimde çalıştırmak için ihtiyacınız olan her şeyi içerir. Herhangi bir kütüphaneye ve başka bir şeye ihtiyacınız yok. İhtiyacınız olan her şey derlenir.
JRE geliştirme için kullanılamaz, sadece uygulamaları çalıştırmak için kullanılır.
Java SE Geliştirme Kiti (JDK)
JDK, JRE plus uygulamacıkları ve uygulamaları geliştirmek için gerekli veya yararlı olan derleyiciler ve hata ayıklayıcılar gibi komut satırı geliştirme araçlarını içerir.
(Kaynaklar: GeeksForGeeks Soru-Cevap , Java Platformuna Genel Bakış )
Bu terimlerin (JVM, JDK, JRE) açık bir şekilde anlaşılması, kullanımlarını ve farklılıklarını kavramak için gereklidir.
JVM Java Sanal Makinesi (JVM), Java bayt kodunu çalıştıran bir çalışma zamanı sistemidir. JVM, bir dizi derlenmiş yönerge yürütebilen ve bellek konumlarını değiştirebilen sanal bir bilgisayar gibidir. Bir Java derleyicisi kaynak kodunu derlediğinde, .class dosyasında bytecode adı verilen son derece optimize edilmiş bir talimatlar dizisi oluşturur. JVM bu bayt kodu talimatlarını yorumlar ve yürütmek için makineye özel koda dönüştürür.
JDK Java Geliştirme Kiti (JDK), Java uygulamalarını geliştirmek ve yürütmek için kullanabileceğiniz bir yazılım geliştirme ortamıdır. JRE'yi ve Java derleyicisi, yorumlayıcı, uygulama görüntüleyici ve belge görüntüleyici gibi bir dizi programlama aracını içerir. JDK, Java SE, Java EE veya Java ME platformları aracılığıyla uygulanır.
JRE Java Runtime Environment (JRE), JDK'nın JVM, çekirdek sınıflar ve uygulama geliştirmeyi destekleyen çeşitli kitaplıklardan oluşan bir parçasıdır. JRE, JDK'nın bir parçası olarak mevcut olsa da, ayrı olarak indirip kullanabilirsiniz.
Tam bir anlayış için Blog'umu görebilirsiniz: Jdk Jre Jvm ve farklılıklar
jdk, kodu derlemek ve java kodunu bayt kodlarına dönüştürmek için gereklidir; jre ise bayt kodlarını çalıştırmak için gereklidir.
JDK , JRE plus uygulamacıkları ve uygulamaları geliştirmek için gerekli veya yararlı olan derleyiciler ve hata ayıklayıcılar gibi komut satırı geliştirme araçlarını içerir.
JRE temel olarak Java programlarınızın çalıştığı Java Sanal Makinesi'dir. Ayrıca Applet yürütme için tarayıcı eklentileri de içerir.
JDK soyut bir makinedir. Java bayt kodunun çalıştırılabileceği çalışma ortamı sağlayan bir özelliktir.
Yani, Temelde JVM <JRE <JDK @ Jaimin Patel başına dedi.
JDK ve JRE arasındaki fark, JDK'nın java için yazılım geliştirme kiti, JRE ise programlarınızı çalıştırdığınız yerdir.
varsayalım, o zaman rolünüz programı geliştirmek ve programı yürütmektir. böylece JDK tarafından sağlanan geliştirme ve yürütme ortamınız olmalıdır.
Eğer bir müşteri iseniz, o zaman geliştirme hakkında endişelenmenize gerek yok varsayalım.Sadece ihtiyacınız, JRE tarafından sağlanan programı çalıştırmak ve sadece sonuç almak için bir ortam.
JRE uygulamayı çalıştırır, ancak JVM yönergeleri satır satır okur, böylece yorumlayıcı olur.
JDK = JRE + Geliştirme Araçları
JRE = JVM + Kütüphane Sınıfları
JRE
JRE, Java Runtime Environment için bir kısaltmadır. Runtime ortamı sağlamak için kullanılır. JVM uygulamasıdır. Fiziksel olarak var. JVM'nin çalışma zamanında kullandığı kütüphaneler + diğer dosyaları içerir.
JVM'lerin uygulanması, Sun Micro Systems dışındaki diğer şirketler tarafından da aktif olarak yayınlanmaktadır.
JDK
JDK, Java Geliştirme Kiti'nin kısaltmasıdır. Fiziksel olarak mevcuttur JRE + geliştirme araçlarını içerir.