Giriş
Java 8'e kadar tüm java kodu rt.jar dosyasındaydı. Java 9'dan itibaren bu dosya 90'dan fazla parçaya bölündü. Bazı parçalar şöyle
Şöyle yaparız.
Kısımlar şöyle.
1. Modül ismi
2. requires - modul import eder
3. exports
Java 8'e kadar tüm java kodu rt.jar dosyasındaydı. Java 9'dan itibaren bu dosya 90'dan fazla parçaya bölündü. Bazı parçalar şöyle
java.base
java.xml
java.sql
java.desktop
java.httpserver
Dosya
Bu dosya derleme zamanında işe yarar. Çalışma zamanında halen modulleri java --add-module şeklinde belirtmek gerekir. İskeleti şöyledir.module my.model.server {
requires com.foo.bar;
...
}
Bu dosya iki yerde bulunabilir. Açıklaması şöyle.There are two places where module-info.java can be located:Modul Komutları
1. With all the other classes, in src/main/java
2. In a separate "source set," e.g. in src/main/java9.
Şöyle yaparız.
java –list-modules
java –describe-module java.sql
Dosya 4 Kısımdan OluşurKısımlar şöyle.
1. Modül ismi
2. requires - modul import eder
3. exports
4. provides
1. Modul İsmi
Açıklaması şöyle.
Örnek
Module olan kütüphaneyi requires ile import ederiz. Şöyle yaparız
Module olmayan kütüphaneyi de requires ile import ederiz. Burada dikkat edilmeyi gereken nokta isim olarak jar dosyasının ismini kullanmak.
Örnek ver
1. Modul İsmi
Açıklaması şöyle.
This first step boils down to picking a module name, and adding it as Automatic-Module-Name: <module name> entry to the library's MANIFEST.MF. That's it. With this first step you make your library usable as Java module without moving the library itself to Java 9 or creating a module descriptor for the library, yet.2. requires
Örnek
Module olan kütüphaneyi requires ile import ederiz. Şöyle yaparız
requires java.xml.bind;
Örnek - Automatic Module EklemekModule olmayan kütüphaneyi de requires ile import ederiz. Burada dikkat edilmeyi gereken nokta isim olarak jar dosyasının ismini kullanmak.
requires mylib;
3. exportsÖrnek ver
4. provides
Bir arayüzü gerçekleştiren sınıf varsa ve JVM tarafından bulunacaksa buraya ekleriz. Açıklaması şöyle
Nashorn exports itself as a scripting engine to be found by the javax.script.ScriptEngineManager through a "provides" entry in its module-info.java. It does not use the older, non-modular export mechanism of declaring itself through a relevant META-INF/services/… entry in its JAR file. This means that if the JAR is not loaded as a JPMS module, script engine manager will not discover it.
Hiç yorum yok:
Yorum Gönder