Java 9: Einführung in das Modulsystem und die Migration
()
About this ebook
Related to Java 9
Titles in the series (100)
IT Wissensmanagement: Theorie und Praxis Rating: 0 out of 5 stars0 ratingsTFS 2012 Überblick und Installation: Der Weg zum TFS Rating: 0 out of 5 stars0 ratingsServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Rating: 0 out of 5 stars0 ratingsHTML5 für Mobile Web Rating: 0 out of 5 stars0 ratingsADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Rating: 0 out of 5 stars0 ratingsBig Data: Technologiegrundlagen Rating: 0 out of 5 stars0 ratingsNFC: Near Field Communication für Android-Entwickler Rating: 5 out of 5 stars5/5JavaScript für Eclipse-Entwickler: Orion, RAP und GWT Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Rating: 0 out of 5 stars0 ratingsTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Rating: 0 out of 5 stars0 ratingsSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsHTML5 Security Rating: 0 out of 5 stars0 ratingsEinstieg in Google Go Rating: 0 out of 5 stars0 ratingsErfolgreiche Spieleentwicklung: OpenCL Rating: 0 out of 5 stars0 ratingsJava EE Security Rating: 0 out of 5 stars0 ratingsBPM: Strategien und Anwendungsfälle Rating: 0 out of 5 stars0 ratingsAmazon Web Services für .NET Entwickler Rating: 0 out of 5 stars0 ratingsBig Data: Executive Briefing Rating: 0 out of 5 stars0 ratingsMobile Business: Was Entscheider morgen wissen müssen Rating: 0 out of 5 stars0 ratingsUX Design für Tablet-Websites: Ein Überblick Rating: 0 out of 5 stars0 ratingsAlgorithmen: Grundlagen und Implementierung Rating: 0 out of 5 stars0 ratingsJava 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsÜberzeugende Präsentationen: Konzeption, Technik und Design Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsF#: Ein praktischer Einstieg Rating: 0 out of 5 stars0 ratingsGeolocation mit PHP: Foursquare-API, Google Places & Qype Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratingsQualitätssicherung mit JavaScript und PHP Rating: 0 out of 5 stars0 ratingsC++: Kurzportträt einer zeitlosen Sprache Rating: 0 out of 5 stars0 ratings
Related ebooks
Modulare Software entwickeln mit OSGi Rating: 0 out of 5 stars0 ratingsSpring Boot und Spring Cloud Rating: 5 out of 5 stars5/5Java 7: Fork-Join-Framework und Phaser Rating: 0 out of 5 stars0 ratingsSprachenkompendium: Ceylon, Erlang und Ruby Rating: 0 out of 5 stars0 ratingsSpock, Geb und Selenium: Testframeworks unter die Lupe genommen Rating: 0 out of 5 stars0 ratingsJava 7: Project Coin, Generics und NIO2 Rating: 0 out of 5 stars0 ratingsJavaScript auf dem Server Rating: 0 out of 5 stars0 ratingsJava – die Neuerungen in Version 9 bis 12: Modularisierung, Syntax- und API-Erweiterungen Rating: 0 out of 5 stars0 ratingsJava EE 7: Ein Ausblick Rating: 0 out of 5 stars0 ratingsModerne Webanwendungen mit AngularJS Rating: 0 out of 5 stars0 ratingsCDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Rating: 0 out of 5 stars0 ratingsJavaScript für Java-Entwickler Rating: 0 out of 5 stars0 ratingsJPA 2.1: Persistence-Features in Java EE 7 Rating: 0 out of 5 stars0 ratingsEclipse meets Java FX Rating: 0 out of 5 stars0 ratingsZend Framework 2: Für Einsteiger und Umsteiger Rating: 0 out of 5 stars0 ratingsSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Rating: 0 out of 5 stars0 ratingsApache Tamaya: Einstieg in die Konfiguration in Java Rating: 0 out of 5 stars0 ratingsSprachenkompendium: Vala, Go und Rust Rating: 0 out of 5 stars0 ratingsForms over Data mit Knockout.js: Die freie MVVM-JavaScript-Bibliothek im Praxiseinsatz Rating: 0 out of 5 stars0 ratingsPolyglottes Programmieren in Java Core Rating: 0 out of 5 stars0 ratingsDas Java Memory Model: Überblick und Ausblick auf Java 9 Rating: 0 out of 5 stars0 ratingsDynamic Proxies: Effizient programmieren Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Unit Testing Rating: 0 out of 5 stars0 ratingsJava 9 – Die Neuerungen: Syntax- und API-Erweiterungen und Modularisierung im Überblick Rating: 0 out of 5 stars0 ratingsjQuery Mobile: Einfach mobile Web-Apps entwickeln Rating: 0 out of 5 stars0 ratingsJava ME: Pragmatische Plattform für Mobile und Embedded Rating: 0 out of 5 stars0 ratingsVaadin mit Eclipse, Clojure und OSGi Rating: 0 out of 5 stars0 ratingsApache Kafka Rating: 0 out of 5 stars0 ratingsDurchstarten mit Scala Rating: 0 out of 5 stars0 ratingsJava 8 - Die Neuerungen: Lambdas, Streams, Date and Time API und JavaFX 8 im Überblick Rating: 0 out of 5 stars0 ratings
Programming For You
Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Rating: 0 out of 5 stars0 ratingsEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Rating: 0 out of 5 stars0 ratingsMicrosoft Word 2016 (Microsoft Press): Einfache Anleitungen für wichtige Aufgaben Rating: 0 out of 5 stars0 ratingsSoft Skills in der IT Rating: 0 out of 5 stars0 ratingsDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Rating: 4 out of 5 stars4/5Python kurz & gut: Für Python 3.x und 2.7 Rating: 3 out of 5 stars3/5Python | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Rating: 0 out of 5 stars0 ratingsHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Rating: 0 out of 5 stars0 ratingsRaspberry Pi: Einstieg • Optimierung • Projekte Rating: 5 out of 5 stars5/5Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Rating: 0 out of 5 stars0 ratingsSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Rating: 0 out of 5 stars0 ratingsPowerShell: Anwendung und effektive Nutzung Rating: 5 out of 5 stars5/5Python programmieren lernen: Der spielerische Einstieg mit Minecraft Rating: 0 out of 5 stars0 ratingsNew Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Rating: 0 out of 5 stars0 ratingsAndroid-Entwicklung für Einsteiger - 20.000 Zeilen unter dem Meer: 2. erweiterte Auflage Rating: 0 out of 5 stars0 ratingsC von Kopf bis Fuß Rating: 3 out of 5 stars3/5.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Rating: 0 out of 5 stars0 ratingsC++: Eine kompakte Einführung Rating: 0 out of 5 stars0 ratingsJavaScript kurz & gut Rating: 3 out of 5 stars3/5User Experience Testing 3.0: Status Quo, Entwicklung und Trends Rating: 0 out of 5 stars0 ratingsVue.js kurz & gut Rating: 0 out of 5 stars0 ratingsPython lernen – kurz & gut Rating: 0 out of 5 stars0 ratingsMicrocontroller für das IoT Rating: 0 out of 5 stars0 ratingsJavaScript kinderleicht!: Einfach programmieren lernen mit der Sprache des Web Rating: 0 out of 5 stars0 ratingsGit kurz & gut Rating: 0 out of 5 stars0 ratingsPowerprojekte mit Arduino und C: Schluss mit dem frustrierenden Ausprobieren von Code-Schnipseln! Rating: 0 out of 5 stars0 ratingsDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Rating: 0 out of 5 stars0 ratingsAndroid-Programmierung kurz & gut Rating: 0 out of 5 stars0 ratingsEinstieg in TypeScript: Grundlagen für Entwickler Rating: 0 out of 5 stars0 ratings
Reviews for Java 9
0 ratings0 reviews
Book preview
Java 9 - Alexandru Jecan
GmbH
1 Anwendungen kompilieren, paketieren und ausführen
Nach langer Erwartung wird Java 9 voraussichtlich im September 2017 veröffentlicht. Die neuste Version bietet einige Verbesserungen. Insgesamt 89 Java Enhancement Proposals (JEPs) wurden in Java 9 implementiert. In diesem Kapitel stelle ich das Modulsystem des Projekts Jigsaw vor.
Die größte Änderung in Java 9 ist das neue Modulsystem Projekt Jigsaw. Mithilfe von Projekt Jigsaw wird die Programmierung auf Basis von Softwaremodulen in Java 9 möglich. Dieses Kapitel erläutert Ihnen einen Teil der wichtigsten Grundlagen des Projekts Jigsaw, deren Aufgabe es ist, das Design eines Standardmodulsystems für das JDK 9 und für die Java-Plattform bereitzustellen. Projekt Jigsaw besteht aus insgesamt sechs JEPs und einem JSR:
JEP 200: Modulares JDK
JEP 201: Modularer Quellcode
JEP 220: Modulare Laufzeit-Images
JEP 260: Einkapselung von internen APIs
JEP 261: Modulares System
JEP 282: JLink
JSR 376: Java-Plattform-Modulsystem
Die OpenJDK-Webseite stellt unter [1] die Ziele von Projekt Jigsaw eindeutig und präzise vor. So sollen die Java-SE-Plattform und das JDK skalierbarer für kleine Geräte sein. Außerdem sollen die Sicherheit und Wartbarkeit der Java-SE-Plattform sowie die Leistung von Applikationen verbessert werden. Zudem steht die einfachere Entwicklung und Wartbarkeit von Bibliotheken und großen Anwendungen auf dem Plan, sowohl für die Java-SE- als auch für die Java-EE-Plattform.
Java-9-Anwendungen bestehen aus Modulen. Bei der Kompilierung und Ausführung unterstützt Java 9 die Angabe von Modulen. Der Java-Compiler und der Java Launcher wurden mit neuen Flags bereichert, um die Kompilierung und die Ausführung von Java-9-Modulen zu ermöglichen. Zu den wichtigsten neuen Optionen zählen die folgenden Flags: --module-source-path, das dem Java-Compiler den Suchpfad für Module mitteilt, --module-path, das dem Java Launcher die Stelle der kompilierten Module mitteilt sowie --module, das das Hauptmodul nennt.
Außerdem wird das neue Konzept modularer JAR-Dateien vorgestellt. Nebenbei wird erklärt, wie man eine modulare JAR-Datei aus .class-Dateien erzeugen und wie sie für die Ausführung der Module verwendet werden kann. Die meisten internen JDK-APIs sind in JDK 9 nicht mehr zugänglich. Quellcode, der solche internen JDK-APIs verwendet, kann im JDK 9 nicht mehr kompiliert werden. Um die Kapselung auszuschalten, wurde eine neue Java-Compiler-Option namens --add-exports eingeführt. Mithilfe dieser Option kann man spezifizieren, ob ein internes JDK-Paket für ein bestimmtes Modul zugänglich sein soll. Ein konkretes Beispiel mit Quellcode wollen wir uns in diesem Kapitel ansehen.
Das Konzept des Moduls in Java 9
Ein Modul in Jigsaw ist ein Container mit Paketen. Es enthält Ressourcendateien, nativen Quellcode und einen Moduldeskriptor mit dem Namen module-info.java. Die typische Struktur eines Moduls namens com.javamagazin.meinModul sieht folgendermaßen aus:
src/
com.javamagazin.meinModul/
module-info.java
com/javamagazin/meinModul/
// meine Java-Dateien
Das kann der Moduldeskriptor
Der Moduldeskriptor entspricht der Datei module-info.java. Um ein Modul zu definieren, muss die Datei module-info.java auf oberster Paketebene innerhalb eines Moduls vorhanden sein. Die Datei enthält das Schlagwort module,