Database
 sql >> Datenbank >  >> RDS >> Database

Verwenden von Modulabhängigkeiten, Teil 2

Modulabhängigkeit bezieht sich darauf, dass ein Modul von einem anderen Modul abhängig ist oder dieses erfordert. Modulabhängigkeiten wurden in Abhängigkeit von anderen Modulen deklarieren eingeführt Abschnitt im Artikel „Entwicklung eines Moduls mit Java 9 in der Eclipse-IDE, Teil 1“. Im ersten von zwei Artikeln, „Modulabhängigkeiten verwenden, Teil 1“, haben wir zwei Java-Projekte für zwei Module erstellt, ein Hauptmodul und ein Abhängigkeitsmodul. Wir hätten nicht beide Module in einem Java-Projekt erstellen können, da die Eclipse-IDE mehrere Module in einem einzigen Projekt nicht unterstützt. Nachdem wir zwei Projekte erstellt haben, werden wir in diesem Fortsetzungsartikel jedes Projekt in eine separate JAR-Datei exportieren. Das Exportieren und Verwenden eines Moduls als JAR-Datei wird in einem früheren Tutorial, „Verwenden eines Java 9-Moduls als JAR-Datei“, erläutert. Das Hinzufügen mehrerer Module in einer einzigen JAR-Datei wird derzeit nicht unterstützt, ist jedoch für eine zukünftige Java-Version geplant. In diesem Artikel werden wir die Konfiguration der beiden Java-Projekte und die Ausführung der Hauptmodulanwendung erörtern, um die Modulabhängigkeit zu demonstrieren. Dieser Artikel hat die folgenden Abschnitte:

  • Festlegen des Erstellungspfads des Haupt-Java-Projekts
  • Exportieren des Haupt-Java-Projekts in eine JAR-Datei
  • Exportieren des Abhängigkeits-Java-Projekts in eine JAR-Datei
  • Hinzufügen einer Laufkonfiguration
  • Ausführen der Hauptmodul-Java-Anwendung
  • Schlussfolgerung

Festlegen des Erstellungspfads des Haupt-Java-Projekts

Die beiden zuvor entwickelten Java-Projekte weisen Fehler auf, wie durch die roten Markierungen in Abbildung 1 angezeigt. Die Fehler werden angezeigt, weil die beiden Module in separaten Projekten definiert sind und sich das Abhängigkeitsprojekt nicht im Erstellungspfad des Hauptprojekts befindet.


Abbildung 1: Java-Projekte mit Fehlern

In diesem Abschnitt konfigurieren wir den Erstellungspfad für das MainModule Projekt, um das HelloJavaModule hinzuzufügen Projekt in den Erstellungspfad. Klicken Sie mit der rechten Maustaste auf Hauptmodul im Paket-Explorer und wählen Sie Erstellungspfad>Erstellungspfad konfigurieren aus , wie in Abbildung 2 gezeigt.


Abbildung 2: Paket-Explorer> Erstellungspfad> Erstellungspfad konfigurieren

In den Eigenschaften Fenster, der Java Build Path Standardeinstellungen werden angezeigt, wie in Abbildung 3 gezeigt.


Abbildung 3: Java-Erstellungspfad

Wählen Sie die Projekte aus und wählen Sie Modulpfad aus , wie in Abbildung 4 gezeigt. Klicken Sie auf Hinzufügen…


Abbildung 4: Java-Erstellungspfad>Projekte>Modulpfad>Hinzufügen…

Die Erforderliche Projektauswahl Fenster zeigt das Abhängigkeitsprojekt HelloJavaModule an , wie in Abbildung 5 gezeigt. Wählen Sie das HelloJavaModule aus Projekt und klicken Sie auf OK.


Abbildung 5: Auswählen eines hinzuzufügenden Projekts

Das HelloJavaModul Projekt wird zum Modulpfad hinzugefügt (siehe Abbildung 6). Klicken Sie auf Übernehmen und schließen .


Abbildung 6: Java-Projekt HelloJavaModule zum Modulpfad hinzugefügt

Die Fehler und roten Markierungen werden aus dem MainModule entfernt Projekt, wie in Abbildung 7 gezeigt.


Abbildung 7: Fehler aus MainModule entfernt

Exportieren des Haupt-Java-Projekts in eine JAR-Datei

Hinzufügen des HelloJavaModule project in den Build-Pfad des MainModule project entfernt nur die Build-/Kompilierzeitfehler. Für die Laufzeit müssten wir jedes der Module in eine JAR-Datei exportieren und die JAR-Dateien zum Laufzeitmodulpfad hinzufügen, wenn das Projekt ausgeführt wird. Die JAR-Dateien müssten in denselben Ordner exportiert werden, damit wir den Modulpfad konfigurieren können, ohne projektübergreifend auf Module zu verweisen. Wie bereits erwähnt, wird ein JAR mit mehreren Modulen noch nicht unterstützt, soll aber in einer späteren Version von Java unterstützt werden.

So exportieren Sie das MainModule Projekt in eine JAR-Datei, klicken Sie mit der rechten Maustaste auf MainModule im Paket-Explorer und wählen Sie Exportieren , wie in Abbildung 8 gezeigt.


Abbildung 8: Paket-Explorer>Hauptmodul>Exportieren

Im Exportieren Fenster, wählen Sie Java>JAR-Datei , wie in Abbildung 9 gezeigt, und klicken Sie auf Weiter.


Abbildung 9: Exportieren>Java>JAR-Datei>Weiter

In der JAR-Dateispezifikation , wählen Sie die zu exportierende Ressource als MainModule aus , wie in Abbildung 10 gezeigt. Wählen Sie als Exportziel MainModulemodulesmainmodule.jar aus . Klicken Sie auf Weiter.


Abbildung 10: JAR-Dateispezifikation

Wählen Sie die standardmäßigen JAR-Paketoptionen aus (siehe Abbildung 11) und klicken Sie auf Weiter.


Abbildung 11: Verpackungsoptionen auswählen

Passen Sie als Nächstes die JAR-Manifestspezifikation an , die das Auswählen der Klasse des Anwendungseinstiegspunkts umfasst. Klicken Sie auf Durchsuchen für die Hauptklasse , wie in Abbildung 12 gezeigt.


Abbildung 12: Hauptklasse>Durchsuchen

In Hauptklasse auswählen , wählen Sie das Hauptmodul aus Klasse im main.module Paket, wie in Abbildung 13 gezeigt, und klicken Sie auf OK.


Abbildung 13: Hauptklasse auswählen

Mit der Hauptklasse ausgewählt haben, klicken Sie auf Fertig stellen, wie in Abbildung 14 gezeigt.


Abbildung 14: JAR-Export>Fertig stellen

Die mainmodule.jar wird nach MainModule/modules exportiert Verzeichnis, wie im Paket-Explorer in Abbildung 15 gezeigt.


Abbildung 15: JAR mainmodule.jar exportiert

Exportieren des Abhängigkeits-Java-Projekts in eine JAR-Datei

In diesem Abschnitt exportieren wir das Abhängigkeitsprojekt HelloJavaModule in eine JAR-Datei im selben Verzeichnis, in das die Hauptmodul-JAR exportiert wird. So exportieren Sie das HelloJavaModule Projekt in eine JAR-Datei, klicken Sie im Paket-Explorer mit der rechten Maustaste auf das Projekt und wählen Sie Exportieren (siehe Abbildung 16).


Abbildung 16: Paket-Explorer>HelloJavaModule>Exportieren

Im Exportieren Fenster, wählen Sie Java>JAR-Datei , wie in Abbildung 17 gezeigt, und klicken Sie auf Weiter.


Abbildung 17: Exportieren>Java>JAR-Datei>Weiter

In der JAR-Dateispezifikation , wählen Sie die zu exportierende Ressource als HelloJavaModule aus , wie in Abbildung 18 gezeigt. Wählen Sie das gleiche Exportziel wie für die Hauptmodul-JAR, nämlich MainModulemodules Verzeichnis. Der Name der JAR-Datei müsste anders lauten und lautet helloJavaModule.jar . Klicken Sie auf Weiter.


Abbildung 18: JAR-Dateispezifikation für Abhängigkeits-JAR

Wählen Sie die standardmäßigen JAR-Verpackungsoptionen aus, wie in Abbildung 19 gezeigt, und klicken Sie auf Weiter.


Abbildung 19: Verpackungsoptionen auswählen

Passen Sie als Nächstes die JAR-Manifestspezifikation an. Da das Abhängigkeitsprojekt keine Klasse für einen Anwendungseinstiegspunkt enthält, behalten Sie die Hauptklasse bei als leer, wie in Abbildung 20 gezeigt, und klicken Sie auf Fertig stellen.


Abbildung 20: Keine Hauptklasse für Abhängigkeitsprojekt

Die helloJavaModule.jar wird nach MainModule/modules exportiert Verzeichnis, wie im Paket-Explorer in Abbildung 21 gezeigt.


Abbildung 21: Exportierte JAR helloJavaModule.jar

Hinzufügen einer Laufkonfiguration

Um die Java-Anwendung des Hauptmoduls auszuführen, müssen wir eine Ausführungskonfiguration für das MainModule erstellen Projekt. Klicken Sie mit der rechten Maustaste auf Hauptmodul im Paket-Explorer und wählen Sie Eigenschaften , wie in Abbildung 22 gezeigt.


Abbildung 22: Paket-Explorer>Hauptmodul>Eigenschaften

Wählen Sie im Eigenschaftenfenster Ausführungs-/Debug-Einstellungen aus und klicken Sie auf Neu… um eine neue Startkonfiguration zu erstellen, wie in Abbildung 23 gezeigt.


Abbildung 23: Eigenschaften>Debug-Einstellungen ausführen>Neu…

In Konfigurationstyp auswählen , wählen Sie Java-Anwendung aus , wie in Abbildung 24 gezeigt.


Abbildung 24: Auswahl des Konfigurationstyps als Java-Anwendung

Geben Sie im Konfigurationsassistenten einen Namen an (MainModuleConfig ) im Namen Feld und mit dem als MainModule ausgewählten Projekt Klicken Sie auf Suchen… für die Hauptklasse , wie in Abbildung 25 gezeigt.


Abbildung 25: Festlegen der Startkonfigurationseigenschaften

Wählen Sie unter Haupttyp auswählen , wählen Sie das main.module.MainModule aus eingeben (siehe Abbildung 26) und auf OK klicken.


Abbildung 26: Auswahl des Haupttyps

Mit der Hauptklasse ausgewählt haben, klicken Sie auf die Argumente Tab, um als nächstes die VM-Argumente auszuwählen, wie in Abbildung 27 gezeigt.


Abbildung 27: Auswählen der Registerkarte "Argumente"

Fügen Sie die folgenden VM-Argumente zum Feld VM-Argumente hinzu, wie in Abbildung 28 gezeigt.

--module-path modules/helloJavaModule.jar;modules/mainmodule.jar
   -m mainModule/main.module.MainModule

Der --module-path arg setzt den Modulpfad zu den beiden JARs für die beiden Module. Das -m arg setzt das Modul. Klicken Sie auf Anwenden , wie in Abbildung 28 gezeigt.


Abbildung 28: Anwenden der Laufkonfigurationseinstellungen

Klicken Sie auf OK, wie in Abbildung 29 gezeigt, um die Laufkonfiguration abzuschließen.


Abbildung 29: Ausführungskonfiguration abschließen

Eine neue Laufkonfiguration, MainModuleConfig , wird erstellt, wie in Abbildung 30 gezeigt. Klicken Sie auf Übernehmen und schließen im Eigenschaftenfenster.


Abbildung 30: Anwenden von Eigenschaften für das MainModule-Projekt

Ausführen der Hauptmodul-Java-Anwendung

Als Nächstes testen wir, ob das Hauptmodul das Abhängigkeitsmodul aufruft, indem wir die Hauptmodulanwendung ausführen. Klicken Sie mit der rechten Maustaste auf MainModule.java im Paket-Explorer und wählen Sie Ausführen als>Java-Anwendung (siehe Abbildung 31).


Abbildung 31: Paket-Explorer>Hauptmodul>Ausführen als>Java-Anwendung

Die Ausgabe der Java-Anwendung wird in der Konsole angezeigt , wie in Abbildung 32 gezeigt. Die Nachricht „Hello from“ des Hauptmoduls wird mit der Nachricht „Exported Java Module!“ kombiniert. vom Abhängigkeitsmodul, um die Nachricht „Hello from Exported Java Module!“ auszugeben.


Abbildung 32: Konsolenausgabe

Schlussfolgerung

In zwei Artikeln haben wir die Verwendung von Modulabhängigkeiten in Java 9 diskutiert.