Umut Çakmak

Umut Çakmak

Java Package İşlemleri

Java Package İşlemleri

Umut Cakmak
·Jun 28, 2022·

Subscribe to my newsletter and never miss my upcoming articles

Arkadaşlar merhaba,

Bu yazıda java paket import işlemlerine bakacağız.

Java api'sinde bulunan binlerce sınıfı ayırt etmek ve gruplamak için paket yapısını kullanılır.

package Chapter1;

import java.util.Date;
import java.util.Random;
import java.sql.*;


public class İmportExample {

    Date date;
    java.sql.Date sqlDate; // yada

    java.util.Date date1;
    java.sql.Date sqlDate1;  // gibi

    public static void main(String[] args) {
        Random r = new Random();
        System.out.println(r.nextInt(10));
    }
}

Java dünyasında özel bir paket vardır. java.lang paketi Bu paket, otomatik olarak içe aktarıldığı için özeldir.Ekstra olarak eklenmesi gereksizdir.

import java.lang.System;
import java.lang.*;

// otomatik olarak ekleneceklerdir.

Aynı paketteki sınıflar genellikle birlikte alınır. Bir paketteki tüm sınıfları içe aktarmak için bir kısayol kullanabilirsiniz.Bu şekilde java.util paketi altında ki tüm sınıfları import ederiz.

import java.util.*;
import java.util.Date;
import java.sql.*;

// bu şekilde çalışacaktır.

Bir sınıf adını açıkça içe aktarırsanız, mevcut tüm joker karakterlere göre öncelikli olur. Java, "Programcı gerçekten java.util.Date sınıfını kullanmamı istiyor" diye düşünüyor.Fakat 2'si birden eklenirse;

 import java.util.Date;
 import java.sql.Date;

Bu durumda da hata alınır.İki varsayılan olamayacağı için derleyici size şunları söyler:

error: reference to Date is ambiguous Date date; ^ both class java.util.Date in java.util and class java.sql.Date in java.sql match

Bazen Date'i iki farklı paketten kullanmak istersiniz. Bu olduğunda, içe aktarmada kullanmak üzere birini seçebilir ve özel olduğunu belirtmek için diğerinin tam nitelikli sınıf adını [paket adı, nokta (.) ve sınıf adı] kullanabilirsiniz. işte bir örnek;

    Date date;
    java.sql.Date sqlDate; // yada

    java.util.Date date1;
    java.sql.Date sqlDate1;  // gibi

Varsayılan olarak, javac komutu, derlenmiş sınıfları kaynak kodla aynı dizine yerleştirir.Ayrıca sınıf dosyalarını farklı bir dizine yerleştirme seçeneği sunar. -d seçeneği bu hedef dizini belirtir.

javac -d classes packagea/ClassA.java packageb/ClassB.java

Programı çalıştırmak için sınıf yolunu belirtirsiniz, böylece Java sınıfları nerede bulacağını bilir. Kullanabileceğiniz üç seçenek vardır. Bunların üçü de aynı şeyi yapar:

java -cp classes packageb.ClassB
java -classpath classes packageb.ClassB
java --class-path classes packageb.ClassB

Jar Dosyası ile Derleme

Bu teknik, sınıf dosyaları başka bir yerde veya özel JAR dosyalarında bulunduğunda kullanışlıdır.

Windows için;

java -cp ".;C:\temp\someOtherLocation;c:\temp\myJar.jar" myPackage.MyClass

MacOS / Linux için;

 java -cp ".:/tmp/someOtherLocation:/tmp/myJar.jar" myPackage.MyClass

Jar Dosyası Oluşturma

Bunu yapmak için jar komutunu kullanırsınız. En basit komutlar, geçerli dizindeki dosyaları içeren bir jar oluşturur. Her seçenek için kısa veya uzun yazım şeklini kullanabilirsiniz.

jar -cvf myNewFile.jar . 

jar --create --verbose --file myNewFile.jar .

// Dizin göstererek
jar -cvf myNewFile.jar -C dir .

Yeni bir jar dosyası oluşturmak için.

-c
--create ;

JAR dosyalarıyla çalışırken ayrıntıları yazdırır.

-v
--verbose;

Jar ismi.

-f <fileName>
--file
<fileName>;

JAR'ı oluşturmak için kullanılacak dosyaları içeren dizin.

-C <directory>;