Java JAR Dosyası Yaratma – Bölüm 2

Daha önceki yazımda, JAR dosyasının komut satırından nasıl yaratılacağından bahsetmiştim. Bu yazıda da Java için geliştirme yapılan Eclipse ve Netbeans IDE’lerinde nasıl JAR dosyası yaratılacağını göstereceğim.

Eclipse

  1. Package Explorer ekranında jar dosyasını oluşturmak istediğimiz projeye sağ tıklıyoruz. Açılan menüden Export seçeneğine tıklıyoruz.
  2. Açılan ekranda Java altında JAR File seçeneğini seçerek Next diyoruz.
  3. Açılan ekranda, istenilen proje ve paketleri seçiyoruz. Alttaki seçeneklerde, oluşturulan class dosyalarını ve kaynakları eklemek için “Export generated class files and resources” seçeneğini, kaynak dosyaları eklemek için “Export java source files and resources” seçeneğini seçiyoruz. JAR File bölümünde jar dosyasını oluşturmak istediğimiz yeri seçiyoruz. Seçenekler kısmında, eğer jar dosyasını sıkıştırmak istiyorsak “Compress the contents of jar file” seçeneğini, dizinlendirmelerin olduğu gibi eklenmesini istiyorsak “Add directory entries” seçeneğini, herhangi bir uyarı vermeden eski jar dosyası üzerine yazmak istiyorsak “Overwrite existing files without warning” seçeneğini seçiyoruz ve Next diyoruz.
  4. Açılan ekranda, Next diyoruz.
  5. Açılan ekranda, eğer manifest dosyasının otomatik yaratılmasını istiyorsak, “Generate manifest file” seçeneğini, kendi oluşturduğumuz manifest dosyasını eklemek istiyorsak, “Use existing manifest from workspace” seçeneğini seçerek manifest dosyasının yerini seçiyoruz. Eğer, projemiz bir kütüphane değil de çalıştırılabilir bir uygulama olacak ise “Main class” seçeneğinden uygulamanın hangi sınıfdan başlayacağını seçiyoruz (sınıfın main metoduna sahip olması gerekiyor).

Not: İşlemler Eclipse 4.2 Juno versiyonunda gerçekleştirilmiştir.

Netbeans

Netbeans’te işlemler biraz daha kolay ama seçenekler de Eclipse’e göre daha az.

  1. Projects ekranında jar dosyasını oluşturmak istediğimiz projeye sağ tıklıyoruz. Açılan menüden Properties seçeneğine tıklıyoruz.
  2. Açılan ekranda Build > Packaging‘e tıklıyoruz. Sağ tarafta “JAR File” kısmında dosyanın oluşacağı klasör belirtiliyor (proje klasörünün altında). “Exclude From JAR File” kısmında jar dosyasına eklemek istemediğimiz dosyaları yazıyoruz. Örnekte, tüm java ve form uzantılı dosyalara eklenmeyecek şekilde seçim yapılmış. Eğer, jar dosyasını sıkıştırmak istiyorsak, “Compress JAR file” seçeneğini, eğer proje derlendikten sonra jar dosyasının otomatik olarak oluşmasını istiyorsak (bu örnekte bu şekilde oluşturacağız), “Build JAR after Compiling” seçeneğini, eğer kullandığımız kütüphaneleri de jar dosyasına eklemek istiyorsak, “Copy dependent libraries” seçeneğini seçerek OK‘ye tıklıyoruz.
  3. Projects ekranında jar dosyasını oluşturmak istediğimiz projeye sağ tıklıyoruz. Açılan menüden Clean and Build seçeneğine tıklıyoruz. Bu işlemden sonra jar dosyası “proje yolu/dist/” klasörü altında oluşmuş oluyor.

Not: İşlemler Netbeans 7.0.2 versiyonunda gerçekleştirilmiştir.

Herkese iyi çalışmalar.

 

Java JAR Dosyası Yaratma

Daha önceki yazımda, JAR dosyası hakkında kısaca bilgi vermeye çalışmıştım. Bu yazıda, komut satırından, java uygulaması için nasıl jar dosyası yaratılacağını anlatmaya çalışacağım.İlerleyen yazılarda da jar dosyası ile ilgili gelişmiş özelliklerden bahsetmeyi düşünüyorum.

Öncelikle jar olarak oluşturacağımız sınıfı tanımlayalım:

// JARClass.java
public class JARClass {
    public static void main(String [ ] args) {
        System.out.println("Java JAR Dosyası Yaratma");
    }
}

Ve tabii ki derleme komutu:

javac JARClass.java

JAR Dosyası Komutu ve Parametreleri

Şimdi basitçe, çok detaya girmeden, jar dosyası yaratmak için gerekli komutu görelim:

jar cf JARClass.jar *

Burada jar komutundan sonraki parametreler sırasıyla şu anlamlara geliyor:

  • c; jar dosyası yaratacağımızı belirtir ifade (create)
  • f; jar dosyasını bir dosyaya yaratacağımızı belirten ifade (f yazmayıp, dosya ismi belirtmez isek, konsola jar içeriğini basıyor).
  • JARClass.jar; yaratmak istediğimiz jar dosyasının adı
  • *; ifadesi şuan bulunduğumuz klasör ve tüm alt klasördeki dosya ve klasörleri jar dosyasına eklemeye yarıyor. Ve tabii ki bu parametre yerine dosya isimleri yazılarak, sadece istenilen dosyalar eklenebilir.
jar cf JARClass.jar JARClass.class JARClass.java

Diğer Parametreler

Kullanılabilecek belli başlı diğer parametrelerden de bahsetmeye çalışayım:

  • t; belirtilen jar dosyasının (f parametresi ile kullanıldığında) içerisinde bulunan dosyaları belirtir.
jar tf JARClass.jar
  • v; jar dosyası yaratılırken, konsola dosya içeriği ve sıkıştırılma oranları gibi bilgileri basar.
jar cfv JARClass.jar *
  • 0 (sıfır); jar dosyası yaratılırken, dosyaların sıkıştırılmamasını sağlar.
jar cf0 JARClass.jar *
  • M; manifest dosyasının yaratılmamasını sağlar (bu dosyadan birazdan kısaca bahsedeceğim).
jar cfM JARClass.jar *
  • m; harici olarak manifest dosyasının içeriğinin belirtilmesini sağlar (normalde otomatik olarak oluşuyor).
jar cfm manifest.mf JARClass.jar *
  • -C; istenilen klasöre gidilebilmesini sağlar. Örneğin, class dosyasının yanında audio diye klasör olduğunu ve onun içinde de main.wav dosyası bulunduğunu varsayalım. Bu komut sayesinde, main.wav dosyasını jar dosyasına audio klasörü içinde değil de, doğrudan ana dizine eklemesini sağlamış oluyoruz. Aşağıdaki örnekte, ana dizindeki JARClass.class dosyasını ve audio dizini içindeki tüm dosyaları (. ile sağlıyoruz) jar dosyasına eklemiş oluyoruz.
jar cf JARClass.jar JARClass.class -C audio .

JAR Dosyası Nasıl Çalıştırılır?

Şimdi JARClass uygulamamızı nasıl çalıştıracağımızı görelim.

java -jar JARClass.jar

Komutu çalıştırdığımızda bize ana sınıfın ne olduğunu bilmediğinden bahsedecek. Yani, uygulama hangi sınıfın main metodundan başlayacağını bilmiyor. Hemen basitçe bir manifest dosyası yaratıyoruz.

// manifest.mf
Main-Class: JARClass

Dosya uzantısının bir önemi yok. Uzantısız da yaratabilirsiniz. Şimdi, jar dosyasını manifest dosyasıyla tekrar yaratalım.

jar cmf manifest.mf JARClass.jar JARClass.class

Bu komutta m parametresinin f parametresinden önce gelmesine dikkat edilmeli. Komut, sonraki parametreleri ona göre işliyor.

Uygulamayı,

java -jar JARClass.jar

komutuyla tekrar çalıştırmak istediğimizde, artık düzgün bir şekilde çalışmış oluyor.

Manifest dosyası ile ilgili detay bilgileri başka bir yazımda detaylı bir şekilde vermek istiyorum. Şimdilik konu burada kalsın. Herkese iyi çalışmalar.