Heim  >  Artikel  >  Java  >  JPMS: Java Platform Module System

JPMS: Java Platform Module System

PHPz
PHPznach vorne
2023-09-24 17:05:071086Durchsuche

JPMS steht für Java Platform Module System. Dies ist eine neue Funktion in Java 9. Unsere Java-Anwendungen und Java-Pakete können mit Hilfe des Java-Modulsystems in Java-Module gepackt werden. Mit Java-Modulen können wir festlegen, welche Pakete des Moduls und anderer Java-Module es sehen können sollen. Das Java-Modul listet außerdem die für die Ausführung erforderlichen Java-Module auf.

Java Platform System ist auch als Java Jigsaw oder Project Jigsaw bekannt. Zur Zeit seiner Entwicklung wurde der Name Jigsaw verwendet. Der Hauptzweck dieser Entwicklung besteht darin, die JRE modularer zu gestalten. JPMS löst mehrere große Probleme, nämlich Classpath/JAR Hell, umfangreiches einzelnes JDK, Versionskonflikte und Sicherheitsprobleme.

Lassen Sie uns nun tiefer in das Java Platform Modularity System eintauchen, um mehr darüber zu erfahren.

Warum benötigt Java Module?

Es ist wichtig zu bedenken, dass JPMS eine SE-Funktion (Standard Edition) ist und alle Java-Versionen betrifft. Dennoch besteht der Zweck dieses Patches darin, die Ausführung der meisten Programme ohne Änderungen beim Wechsel von Java 8 auf Java 9 zu ermöglichen. Sein Hauptzweck besteht darin, verwandte Pakete zu sammeln, die für das Modul sichtbar sind, und gleichzeitig einige Komponenten vor externen Benutzern des Moduls zu verbergen.

Der Start von JPMS hat die folgenden erklärten Ziele –

  • Organisieren Sie große Anwendungen und Bibliotheken ganz einfach.

  • Sicherheit verbessern

  • Anwendungsleistung verbessern

  • Verwalten Sie Plattformausfälle für kleine Geräte.

  • Verbesserte Struktur.

Klassenpfad VS Modulpfad

Bisher war der Klassenpfad der Hauptfaktor dafür, auf was ein Programm zugreifen kann, wenn es in Java ausgeführt wird. Obwohl der Klassenpfad diese Rolle spielt und klar verstanden wird, wird er letztendlich zu einem großen, undifferenzierten Eimer, in den alle Abhängigkeiten eingebunden werden.

Der Modulpfad fügt eine Ebene über dem Klassenpfad hinzu. Es fungiert als Speicherplatz für Pakete und wählt aus, auf welche Pakete eine Anwendung zugreifen kann.

?

Klassenpfad

Modulpfad

Gilt für alle Java-Versionen

Nur verfügbar für Java 9 und höher

Keine Notwendigkeit für module-info.java

Benötigen Sie module-info.java

Das Hinzufügen der Bibliothek funktioniert nur, wenn das Projekt nicht über module-info.java verfügt

Die Bibliothek kann ohne module-info.java arbeiten

Nur nicht-modulare Bibliotheken hinzufügen

Es können sowohl modulare als auch nicht modulare Elemente hinzugefügt werden

Schwache Kapselung und Abstraktion

Starke Kapselung und Abstraktion

Modularität ist schwach

Sehr modular

Eine Bibliothek kann nicht zu einem Projekt hinzugefügt werden, indem ein Teil davon zum Klassenpfad hinzugefügt wird

Wir können den erforderlichen Teil der Bibliothek nur zum Projekt hinzufügen, indem wir ihn zum Modulpfad hinzufügen

Module in JAVA

JDK besteht aus Modulen. Wenn Sie das JDK auf Ihrem System verwenden, verfügen Sie auch über den Quellcode. Wenn Sie das noch nicht wussten, lesen Sie hier nach, um mehr zu erfahren.

Im JDK-Installationsverzeichnis gibt es ein /lib-Verzeichnis. In diesem Verzeichnis finden Sie eine src.zip-Datei. Extrahieren Sie es dann in das Verzeichnis /src. Suchen Sie anschließend im Verzeichnis /src nach dem Verzeichnis /java.base. Dort finden Sie die Datei module-info.java und öffnen sie schließlich.

Nach den Javadoc-Kommentaren oben finden Sie einen Ordner namens modulesection.base, gefolgt von der Exportzeile. Das Format ist etwas esoterisch, daher gehen wir nicht zu sehr darauf ein.

Wie Sie sehen können, exportiert das Modul java.base mehrere bekannte Java-Pakete, darunter java.io. So funktioniert das Modul, das Pakete sammelt.

JPMS:Java 平台模块系统

Die Anforderungen der

-Richtlinie sind das Gegenteil des Exports. Daher ist für das angegebene Modul möglicherweise ein Modul erforderlich. Geben Sie den Modulpfad auf die gleiche Weise an, wie Sie den Klassenpfad angeben, wenn Sie den Java-Compiler für das Modul ausführen. Dadurch ist es möglich, Abhängigkeiten aufzulösen.

Abwärtskompatibilität

Java 9 wurde unter Berücksichtigung der Abwärtskompatibilität entwickelt. Die neue Modulstruktur stellt jedoch eine große Veränderung dar und es kann zu Problemen kommen, insbesondere bei großen Codebasen.

Der folgende Befehl kann bei der Fehlerbehebung von Problemen hilfreich sein, die von Ihrer Codebasis herrühren. Wenn der Befehl jdeps auf eine Klasse verweist, sucht er nach Abhängigkeiten und den Modulen, die diese erfordern.

Wenn Ihre Abhängigkeiten Probleme verursachen, möchten Sie möglicherweise mit einer neueren Version des Pakets erstellen, von dem Sie abhängig sind und das mit Java 9 kompatibel ist. Wenn nicht, sollten Sie nach Optionen suchen.

Häufige Fehler

So lösen Sie java.lang.NoClassDefFoundError -

Javax/xml/bind/JAXBException

Dies ist der Code, der sich darüber beschwert, dass die zugewiesene Klasse nicht gefunden werden kann, weil sie in ein Modul migriert wurde und für den konsumierenden Code nicht sichtbar ist. Es gibt mehrere Lösungen.

JPMS ist ein ziemlich bedeutender Übergang, daher wird die Einführung einige Zeit dauern. Da es sich bei Java 8 um eine Version mit Langzeitunterstützung handelt, besteht glücklicherweise kein unmittelbarer Bedarf.

Langfristig wird es jedoch notwendig sein, alte Projekte zu migrieren und neue Projekte sinnvoll mit Modulen zu nutzen, um vielleicht einige der gebotenen Vorteile nutzen zu können.

Fazit

JPMS steht für Java Platform Module System und wurde in den frühen Entwicklungsstadien auch Projektpuzzle genannt. Es erleichtert Entwicklern die Organisation großer Anwendungen und Bibliotheken. Es verbessert die Struktur und erhöht das Sicherheitsniveau der Plattform. Es wird auch zur Verbesserung der Anwendungsleistung verwendet und ist nützlich für die Plattformzerlegung für kleinere Geräte. Die Hauptidee dahinter besteht darin, eine Sammlung verwandter Pakete für das Modul sichtbar zu machen und gleichzeitig Elemente vor externen Verbrauchern im Modul zu verbergen.

Das obige ist der detaillierte Inhalt vonJPMS: Java Platform Module System. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen