Java Runtime Environment Nedir?
Java Çalışma Zamanı Ortamı (JRE), Java programlarının düzgün çalışması için gereken bir yazılımdır. Java, birçok güncel web uygulamasının ve mobil uygulamanın çalışmasını sağlayan bir bilgisayar dilidir. JRE, Java programı ile işletim sistemi arasında iletişim kuran temel teknolojidir. Java yazılımını bir kez yazdığınızda, başka bir değişiklik olmadan herhangi bir işletim sisteminde çalışması için gereken tüm kaynakları sağlayan bir çevirmen ve aracı işlevi görür.
JRE neden önemlidir?
Bir yazılım programı, belleğe ve program dosyaları ve bağımlılıkları gibi diğer sistem kaynaklarına erişim sağlayan bir çalışma zamanı ortamına ihtiyaç duyar. Geçmişte çoğu yazılım işletim sistemini doğrudan çalışma zamanı ortamı olarak kullanırdı. Ancak bu, geliştiricilerin uygulamalarının çalışmasını istedikleri her işletim sistemi için farklı kod yazmaları gerektiği anlamına geliyordu. Java Runtime Environment (JRE) teknolojisi bu soruna bir çözüm olarak oluşturulmuştur.
JRE aslında herhangi bir Java programının başarılı bir şekilde çalışması için gerekli olan üç Java platformu bileşeninden biridir. Java Geliştirme Kiti (JDK) ve Java Sanal Makinesi (JVM) diğer iki bileşendir.
Java Geliştirme Kiti
JDK, Java uygulamaları geliştirmek için kullanabileceğiniz bir yazılım araçları koleksiyonudur. JDK'yi indirip yükleyerek geliştirme ortamınızda kurabilirsiniz. Kullanmak istediğiniz Java sürümüyle eşleşen JDK yazılım sürümünü seçin. Örneğin, Java Standard Edition veya Java SE, Java SE JDK'yi gerektirir.
Java Sanal Makinesi
JVM, Java programını satır satır çalıştıran bir yazılımdır. Geliştiriciler, Java uygulaması çalıştığında program kaynaklarını yönetmek için JVM ayarlarını yapılandırırlar. Örneğin, JVM bellek ayarını değiştirebilir ve Java uygulamalarınızın çalışma zamanında ne kadar dahili bellek kullandığını kontrol edebilirsiniz.
Java programlama dilinde JRE'nin rolü
JRE, JDK'yi kullanarak oluşturduğunuz Java kodunu kitaplıklar adı verilen ek yerleşik kodla birleştirir. Daha sonra Java programlarını çalıştıran bir JVM bulut sunucusu veya yerel kopya oluşturur. JVM'ler birden fazla işletim sistemi için kullanılabilir ve JRE, Java kodunuzun her tür JVM'de çalışan tek bir kopyasını oluşturur. Bu şekilde JRE, Java uygulamaları için platform bağımsızlığını kolaylaştırır. Onları bir kez yazabilir ve her yerde çalıştırabilirsiniz.
JRE, JVM ve JDK arasındaki fark
JDK, herhangi bir yazılım geliştirme ortamında yaygın olarak bulunan bir derleyici, hata ayıklayıcı ve diğer araçları içeren JRE'nin üzerinde bir yazılım katmanıdır. JDK'da İngilizce benzeri söz diziminde kod yazarsınız. JDK bunu derler ve bayt kodunu JRE'ye iletir. Buna karşılık, JRE sınıf kitaplıklarını, destek dosyalarını ve JVM'yi içerir. Bayt kodunu herhangi bir cihazda çalıştırmak için bu yazılım bileşenlerini kullanır.
JRE nasıl çalışır?
Java Çalışma Zamanı Ortamı (JRE), işletim sisteminin üzerinde çalışır ve Java'ya özgü ek kaynaklar sağlar. Java Geliştirme Kiti (JDK) ve JRE, Java program dosyalarını herhangi bir makinede çalıştıran sürdürülebilir bir çalışma zamanı ortamı oluşturmak için etkileşime girer. JRE, çalışmak için üç temel bileşen kullanır.
ClassLoader
Java sınıf kitaplıkları, gerektiğinde arayabileceğiniz önceden yazılmış kod koleksiyonları içerir. Kullanıcılardan girdi alma, kullanıcılara çıktı gösterme ve daha fazlası gibi yaygın ve önemsiz olmayan görevler için yerleşik yöntemler sağlayarak Java geliştiricilerinin işini basitleştirirler. Tüm Java programları çeşitli sınıf kitaplıklarına başvurur. Java ClassLoader, gerekli tüm sınıf dosyalarını talep üzerine Java Sanal Makinesi'ne (JVM) dinamik olarak yükler.
Bytecode doğrulayıcı
JDK, yazdığınız İngilizce benzeri kodu Java bytecode adı verilen makine dili sürümüne dönüştüren bir derleyiciye sahiptir. JRE'deki bayt kodu doğrulayıcısı, Java kodunu JVM'ye yüklemeden önce biçimini ve doğruluğunu kontrol eder. Örneğin kod, sistem bütünlüğünü veya erişim haklarını ihlal ediyorsa JRE, sınıf dosyasını yüklemez.
Yorumlayıcı
Bayt kodu başarıyla yüklendikten sonra Java yorumlayıcısı temel makinede Java programını çalıştıran JVM bulut sunucusunu oluşturur.
JRE’nin bileşenleri nelerdir?
Temel bileşenler dışında, Java Runtime Environment (JRE), Java programlarının daha verimli çalışmasına yardımcı olan birkaç başka yazılım bileşeni içerir. Aşağıda bazı örnekler verilmiştir:
Geliştirme araçları
JRE, uygulamalarınızın kalitesini artırmak için kullanabileceğiniz kullanıcı arayüzü araç setleri gibi geliştirme araçları içerir. Aşağıda bazı örnekler verilmiştir:
Java 2D
Java 2D, Java dilinde iki boyutlu grafikler çizmek ve zengin kullanıcı arayüzleri, oyunlar, animasyonlar ve özel efektler oluşturmak için kullanabileceğiniz bir uygulama programlama arayüzüdür (API).
Swing
Swing esnek, kullanıcı dostu özelleştirmeler sunan hafif bir grafik kullanıcı arayüzüdür (GUI).
Abstract Window Toolkit
Abstract Window Toolkit (AWT) düğmeler, pencereler ve kaydırma çubukları gibi kullanıcı arabirimi nesneleri oluşturmak için kullanabileceğiniz bir GUI'dir.
Dağıtım çözümleri
JRE, uygulama kullanıcılarına yazılım değişikliklerini yayınlama sürecini basitleştiren teknolojiler içerir. Bu teknolojiler ayrıca uygulamadaki güncellemeler için gelişmiş destek sağlar. Java Web Start ve Java plugin gibi dağıtım teknolojileri JRE kurulumunun bir parçası olarak dahil edilmiştir. Bu teknolojiler uygulamaların etkinleştirilmesini basitleştirir ve ayrıca JRE'nin gelecekteki güncellemeleri için gelişmiş destek sağlar. Aşağıda bazı örnekler verilmiştir:
Java Web Start
Java Web Start ile web tarayıcınızdan tek bir tıklama ile tam özellikli uygulamaları başlatabilirsiniz.
Java Plugin
Java plugin, popüler tarayıcılar ile Java platformu arasında bir bağlantı kurar, böylece web sitenizin uygulamalarını bir masaüstü tarayıcısında çalıştırabilirsiniz.
Dil ve yardımcı program kitaplıkları
Java sınıf dosyalarından oluşan bir koleksiyona Java paketi denir. JRE; sürüm oluşturma, yönetim ve izlemeyi destekleyen çeşitli Java paketleri içerir. Aşağıdaki paketler bazı örneklerdir:
Koleksiyonlar çerçevesi
Koleksiyonlar çerçevesi, uygulama verilerinin depolanmasını ve işlenmesini iyileştirmek için arayüzler içeren birleşik bir mimaridir.
Preferences API
Preferences API aynı makinedeki birden fazla kullanıcının kendi uygulama tercihleri grubunu tanımlamasına olanak sağlar.
Günlük Kaydı
Günlük paketleri, güvenlik arızaları, performans sorunları ve yapılandırma hataları gibi olayların giderilmesi için günlük raporları üretir.
Java Arşivi
Java Arşivi (JAR), uygulama dosya boyutlarınızı azaltmak ve indirme hızını önemli ölçüde artırmak için birden fazla dosyayı bir araya getirmenizi sağlayan platformdan bağımsız bir dosya biçimidir.
Entegrasyon kitaplıkları
JRE, geliştiricilerin hizmetleri ve uygulamaları arasında sorunsuz veri bağlantıları oluşturmalarına yardımcı olan çeşitli entegrasyon kitaplıkları içerir. Aşağıda bazı örnek kitaplıklar verilmiştir:
Java IDL
Ortak Nesne İstek Aracısı Mimarisini (CORBA) temel alan Java Arabirim Tanımlama Dili (IDL), dağıtılmış veri nesnelerini, yani bir ağ üzerinde farklı platformlarda etkileşime giren nesneleri destekler. Örneğin, Java IDL, Java ile yazılmış nesnelerin C, C++ veya COBOL gibi başka bir dilde yazılmış nesnelerle etkileşime girmesini sağlar.
Java Veritabanı Bağlantısı
Geliştiriciler, uzak veritabanlarına, elektronik tablolara ve dosyalara erişebilen uygulamalar yazmak için Java Veritabanı Bağlantısı (JDBC) API'sini kullanır.
Java Adlandırma ve Dizin Arabirimi
Java Adlandırma ve Dizin Arabirimi (JNDI), istemcilerin adlandırma kurallarını kullanarak harici veri tabanlarından bilgi alan taşınabilir uygulamalar oluşturmasına olanak tanıyan bir dizin hizmetidir.
AWS SDK for Java nedir?
Java için AWS Yazılım Geliştirme Kiti (SDK), Java geliştiricileri için tutarlı ve tanıdık olan bir dizi kitaplık sağlayarak AWS hizmetlerinin kullanımını basitleştirir. Basitleştirilmiş geliştirme için daha yüksek seviyede soyutlamayı destekler. AWS odaklı açık kaynaklı Java kitaplıkları, kod örnekleri ve bir Java API başvuru kılavuzu ile birlikte mevcuttur.
GitHub üzerindeki Java 2.0 için AWS SDK kod örnekleri, uygulamalarınızın geliştirilmesini hızlandırmaya yardımcı olmak üzere AWS hizmetleri için Java kodu örnekleri ve gerçek dünyadan kullanım örnekleri içerir. Ek olarak, Java API Başvuru Kılavuzu için AWS SDK, Java için AWS SDK'nin en son sürümüne yönelik API operasyonlarını açıklar. Başvuru kılavuzu aynı zamanda desteklenen web hizmeti protokolleri için örnek istekler, yanıtlar ve hatalar sunar.