© Excellent backgrounds/Shutterstock.com
Teil 4: Project Jigsaw aka Java Module System

Eine Anwendung in vielen Teilen


Wir wollen Ihnen in dieser Artikelreihe einen Überblick über die Neuerungen in Java 9 verschaffen und einige Features von Java 9 kurz erläutern. Dabei haben wir diejenigen Themen ausgewählt, von denen wir denken, dass sie für Java-Entwickler am interessantesten sind. Und natürlich werfen wir einen Blick auf die größte Neuerung: das Modulsystem.

Java 9 – Überblick

Teil 1: Ergänzungen der Sprache und der existierenden APIs

Teil 2: JVM Internals

Teil 3: Neue und alte JDK-Tools

Teil 4: Project Jigsaw aka Java Module System

Teil 5: JDK-interne Packages wie sun.misc.* und ihr Ersatz

Teil 6: Concurrency Updates

Mit dem Release 9 bekommt Java nun endlich das schon lange angekündigte Modulsystem [1]. Oracle hat bereits vor etwa fünf Jahren damit begonnen, die Modularisierung von Java-Anwendungen zu unterstützen. In diesem Zuge wurde zunächst einmal das JDK selbst restrukturiert und in Module aufgeteilt. Die Modularisierung des JDK ist nun fertig, und damit hat sich das Deployment des JDK geändert: Es gibt in Java 9 nun kein rt.jar mehr, stattdessen besteht das JDK jetzt aus Modulen. Diesem Beispiel soll die Java-Community folgen. Die Idee ist, dass mit Java 9 eine Transitionsphase beginnt, in der insbesondere Third-Party-Anbieter und schließlich alle Java-Anwendungen ihre Java-Software modularisieren.

Was ist ein Modul?

Module sind Artefakte, die eine Einheit von miteinander zusammenhängenden Klassen, nativem Code und Properties bilden. Zu jedem Modul gehören Metadaten, die das Modul und seine Beziehungen zu anderen Modulen beschreiben. Das Hauptziel der Modularisierung ist die Kapselung von zusammenhängenden Klassen und die saubere Beschreibung der Beziehungen zwischen den Modulen. Ein Modul in Java beschreibt:

  • Readability: welche anderen Module dieses Modul benutzt

  • Accessibility: welche Packages dieses Modul anderen Modulen zur Verfügung stellt

Der Zweck des Modulsystems ist es, diese Beziehungen der Module untereinander von der Übersetzung bis zur Laufzeit zu überprüfen und sicherzustellen.

Wozu braucht Java ein Modulsystem?

Die Möglichkeit, zusammenhängende Klassen zusammenzufassen, gibt es bereits mit den Java-Archiven, d. h. den JAR-Dateien. Außerdem gibt es in Java Kapselungsmechanismen mithilfe von Packages und den Visibility-Deklarationen über private, protected und public. Wozu also braucht es ein Modulsystem für Java? Schauen wir uns einige der Gründe an, die dazu geführt haben, dass ein Modulsystem für Java definiert wurde.

Die Visibility-De...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang