JAR & WAR

jar-war (büyük resim için tıklayın)

"Jar" ve "War", Java dünyasında kullanılan iki farklı dosya türüdür ve farklı kullanım alanlarına sahiptir. Aşağıda ikisi arasındaki farkları ve benzerlikleri detaylı bir şekilde inceleyelim:

1. Jar (Java ARchive):

  • Açılımı: Java ARchive.
  • Amacı: Genelde Java sınıflarını ve ilgili kaynakları (metin dosyaları, resimler, vb.) bir arada tutar.
  • Kapsamı:
    • Bir Jar dosyası, genellikle tek bir uygulama veya kütüphaneyi paketlemek için kullanılır.
    • Sadece sınıf dosyalarını ve kaynakları içerir.
  • Kullanımı:
    • Java kütüphanelerini paylaşmak veya bir uygulamanın bağımlılıklarını taşımak için kullanılır.
    • Çalıştırılabilir bir Jar dosyası oluşturulabilir ve java -jar <dosyaadı>.jar komutuyla çalıştırılabilir.
  • Yapı:
    • META-INF dizini genellikle bir manifest dosyası içerir. Bu dosya, Jar dosyasının giriş noktasını belirtebilir (örneğin: main class).

2. War (Web Application ARchive):

  • Açılımı: Web Application ARchive.
  • Amacı: Java tabanlı bir web uygulamasını çalıştırılabilir bir biçimde dağıtmak için kullanılır.
  • Kapsamı:
    • Bir War dosyası, bir web uygulamasının çalışması için gereken her şeyi içerir: Java sınıf dosyaları, JSP dosyaları, HTML, CSS, JavaScript, XML yapılandırma dosyaları, ve daha fazlası.
    • Web uygulamaları için özel dizin yapısı vardır. Örneğin:
      • WEB-INF/ dizini: Kütüphaneler (lib), web.xml dosyası, sınıf dosyaları (classes) gibi yapılandırma ve bağımlılık dosyalarını içerir.
  • Kullanımı:
    • Java web sunucularında (Tomcat, Jetty, WildFly gibi) dağıtım yapmak için kullanılır.
    • web.xml dosyası, uygulama yapılandırmasını ve servlet haritalarını içerir.
  • Yapı:
    • İçerisinde bir web uygulamasının tüm bileşenlerini barındırır ve bir Java EE uyumlu sunucuda çalıştırılır.

Ana Farklar:

ÖzellikJarWar
Kullanım AlanıMasaüstü uygulamaları veya kütüphanelerWeb uygulamaları
Dosya YapısıBasit, bağımsız dosyalarWeb uygulaması dizin yapısı
DağıtımDirekt Java ile çalıştırılırJava web sunucularında çalışır
Sunucu GereksinimiGerekmeyebilirWeb sunucusu gerektirir
İçerikSınıf dosyaları ve kaynaklarJSP, HTML, XML, CSS, kütüphaneler

 

  • Jar, daha çok kütüphaneleri veya bağımsız uygulamaları çalıştırmak için kullanılır.
  • War, Java EE tabanlı bir web uygulamasını sunucuda dağıtmak için kullanılır.

Her iki dosya türü de Java uygulama geliştirme ekosisteminin önemli parçalarıdır ve ihtiyaca göre farklı senaryolarda kullanılır.

Maven ile JAR Oluşturma

Eğer Maven kullanıyorsanız, JAR dosyasını oluşturmak için Maven'ın package hedefini kullanabilirsiniz.

a) Maven Projesi Yapılandırması

pom.xml dosyasını oluşturun ve aşağıdaki gibi yapılandırın:

  • <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> 
  • <groupId>com.example</groupId> 
  • <artifactId>uygulama</artifactId> 
  • <version>1.0-SNAPSHOT</version> 
  • <packaging>jar</packaging> 
  • <build> 
    • <plugins>
      •  <plugin> 
        • <groupId>org.apache.maven.plugins</groupId> 
        • <artifactId>maven-jar-plugin</artifactId>
        •  <version>3.2.0</version> 
        • <configuration> 
          • <archive> 
            • <manifest> 
              • <mainClass>Main</mainClass> 
            • </manifest>
          •  </archive> 
        • </configuration> 
      • </plugin> 
    • </plugins> 
  • </build>
  •  </project>

JAR Dosyası Oluşturma

Terminalde Maven ile şu komutu çalıştırın: mvn package

Bu işlem sonunda target/uygulama-1.0-SNAPSHOT.jar dosyası oluşturulur.

  • Küçük projeler için javac ve jar komutlarıyla manuel olarak JAR dosyası oluşturabilirsiniz.
  • Daha büyük projeler için Maven veya Gradle gibi yapı araçları JAR dosyasını daha verimli bir şekilde oluşturur ve bağımlılık yönetimini kolaylaştırır.

*Gönderi ve görsel chatgpt ile oluşturulmuştur.

omurs

Ö S, 30 Ağustos 2018 Perşembe 15:30 tarihinde kayıt oldu

Etiketler

jar war 

Beğeni


Yıllara Göre Gönderiler








LombokLoglamaB2C (Business-to-Consumer)B2B (Business-to-Business)İçerik Yönetim Sistemi - CMS (Content Management System)Pagination (Sayfalama)Sanal Özel Ağ - VPN (Virtual Private Network)Cronjob (Zamanlanmış Görevler)Printer-YazıcıJava'daki İlkel Veri Tipleri ve Alabilecekleri DeğerlerBit & Byte ve Hafıza Boyutlarındaki Ölçüm BirimleriSanallaştırma (Virtualization)DNS KayıtlarıE-Fatura ve E-ArşivYazılım Lisans TürleriAudit (Denetim) Açık Kaynak (Open Source)Monitoring (İzleme)Sitemap & Robots.txtKilometretaşı (Milestone)BSMV (Banka ve Sigorta Muameleleri Vergisi)KKDF (Kaynak Kullanımı Destekleme Fonu)Siber Pazartesi (Cyber Monday)Black Friday (Kara Cuma)Hotlink.htaccessCryptoLockerMalwareTrojanWormDependency (Yazılım Geliştirme Sürecinde Paket Bağımlılığı)Configuration (Yazılım Geliştirme Sürecinde Yapılandırma)Yahoo ve Yahoo'nun Başarısızlık NedenleriArchiving (Yazılım Geliştirme Sürecinde Arşivleme)Görsel Dosya Türleri (Image Types)ReleaseVersioning & Tagging (Versiyonlama ve Etiketleme)BuildJob (Yazılım Geliştirme Sürecinde Görevler)SonarQubeCDATA (Character Data)Alan Adı Uzantıları (Domain Name Extensions)Regresyon Kara Kutu (Black-Box) TestBeyaz Kutu (White-box) TestGri Kutu (Grey-box) TestYazılım Geliştirme Sürecindeki Temel Test TürleriKod gözden geçirme (Code Review)Birim Testi (Unit Testing)Yazılım Sürecinde EntegrasyonJAR & WAREager & Lazy Fetch TypeMaskelemeKPI (Key Performance Indicator)KII (Key Impact Indicator)Projenin JAR Dosyasını Oluştur - JAR PathSunucu için Linux dağıtım SeçimiKonyteynerler (container technologies)Runtime & Compile Time (Çalışma ve Derleme Zamanı)@Anotasyonlar (@Annotations)

temel-kavramlar Kategori

Runtime & Compile Time (Çalışma ve Derleme Zamanı)

KII (Key Impact Indicator)

KPI (Key Performance Indicator)