sql >> Database >  >> RDS >> Database

Module-afhankelijkheden gebruiken, deel 2

Moduleafhankelijkheid verwijst naar een module die afhankelijk is van of een andere module vereist. Afhankelijkheden van modules zijn geïntroduceerd in de Declaratie van afhankelijkheid van andere modules sectie in het artikel "Een module ontwikkelen met Java 9 in Eclipse IDE, deel 1." In het eerste van twee artikelen, "Moduleafhankelijkheden gebruiken, deel 1", hebben we twee Java-projecten gemaakt voor twee modules, een hoofdmodule en een afhankelijkheidsmodule. We hadden niet beide modules in één Java-project kunnen maken, omdat de Eclipse IDE niet meerdere modules in één project ondersteunt. Nadat we twee projecten hebben gemaakt, zullen we in dit vervolgartikel elk project naar een apart JAR-bestand exporteren. Het exporteren en gebruiken van een module als een JAR-bestand is besproken in een eerdere zelfstudie, "Een Java 9-module gebruiken als een JAR-bestand". Het toevoegen van meerdere modules in een enkele JAR wordt momenteel niet ondersteund, maar is gepland voor een toekomstige Java-versie. In dit artikel bespreken we het configureren van de twee Java-projecten en het uitvoeren van de hoofdmoduletoepassing om moduleafhankelijkheid aan te tonen. Dit artikel heeft de volgende secties:

  • Het bouwpad van het Java-hoofdproject instellen
  • Het hoofd Java-project exporteren naar een JAR-bestand
  • Het Dependency Java-project exporteren naar een JAR-bestand
  • Een uitvoeringsconfiguratie toevoegen
  • De Java-toepassing van de hoofdmodule uitvoeren
  • Conclusie

Het bouwpad van het Java-hoofdproject instellen

De twee eerder ontwikkelde Java-projecten bevatten fouten, zoals aangegeven door de rode markeringen in figuur 1. De fouten worden aangegeven omdat de twee modules in afzonderlijke projecten zijn gedefinieerd en het afhankelijkheidsproject zich niet in het buildpad van het hoofdproject bevindt.


Figuur 1: Java-projecten met fouten

In deze sectie zullen we het buildpad configureren voor de MainModule project om de HelloJavaModule . toe te voegen project naar het bouwpad. Klik met de rechtermuisknop op Hoofdmodule in Pakketverkenner en selecteer Build Path>Build Path configureren , zoals weergegeven in afbeelding 2.


Figuur 2: Pakketverkenner>Build-pad>Build-pad configureren

In de Eigenschappen venster, het Java-bouwpad standaardinstellingen worden weergegeven, zoals weergegeven in Afbeelding 3.


Figuur 3: Java-bouwpad

Selecteer de Projecten tabblad en selecteer Modulepad , zoals weergegeven in Afbeelding 4. Klik op Toevoegen…


Figuur 4: Java Build Path>Projecten>Modulepath>Toevoegen…

De Vereiste Projectselectie venster toont het afhankelijkheidsproject HelloJavaModule , zoals weergegeven in Afbeelding 5. Selecteer de HelloJavaModule project en klik op OK.


Figuur 5: Een project selecteren om toe te voegen

De HelloJavaModule project wordt toegevoegd aan het Modulepad (zie figuur 6). Klik op Toepassen en sluiten .


Figuur 6: Java-project HelloJavaModule toegevoegd aan Modulepath

De fouten en rode markeringen worden verwijderd uit de MainModule project, zoals weergegeven in figuur 7.


Figuur 7: Fouten verwijderd uit MainModule

Het hoofd Java-project exporteren naar een JAR-bestand

De HelloJavaModule . toevoegen project naar het buildpad van de MainModule project verwijdert alleen de fouten in de build/compilatietijd. Voor runtime zouden we elk van de modules naar een JAR-bestand moeten exporteren en de JAR-bestanden moeten toevoegen aan het runtime-modulepad voor wanneer het project wordt uitgevoerd. De JAR-bestanden moeten naar dezelfde map worden geëxporteerd, zodat we het modulepad kunnen configureren zonder naar modules in verschillende projecten te verwijzen. Zoals eerder vermeld, wordt een JAR met meerdere modules nog niet ondersteund, maar het is de bedoeling dat deze in een latere versie van Java wordt ondersteund.

De Hoofdmodule exporteren project naar een JAR-bestand, klik met de rechtermuisknop op MainModule in Pakketverkenner en selecteer Exporteren , zoals weergegeven in afbeelding 8.


Figuur 8: Pakketverkenner>Hoofdmodule>Exporteren

In de Exporteren venster, selecteer Java>JAR-bestand , zoals weergegeven in Afbeelding 9, en klik op Volgende.


Figuur 9: Exporteren>Java>JAR-bestand>Volgende

In JAR-bestandsspecificatie , selecteer de bron die u wilt exporteren als de MainModule , zoals weergegeven in Afbeelding 10. Selecteer de exportbestemming als de MainModulemodulesmainmodule.jar . Klik op Volgende.


Figuur 10: JAR-bestandsspecificatie

Selecteer de standaard JAR-verpakkingsopties (zie Afbeelding 11) en klik op Volgende.


Figuur 11: Verpakkingsopties selecteren

Pas vervolgens de JAR-manifestspecificatie aan , waaronder het selecteren van de klasse van het toegangspunt van de toepassing. Klik op Bladeren voor de Hoofdklasse , zoals weergegeven in Afbeelding 12.


Figuur 12: Hoofdklasse>Bladeren

In Hoofdklasse selecteren , selecteer de Hoofdmodule klasse in de main.module pakket, zoals weergegeven in Afbeelding 13, en klik op OK.


Figuur 13: Hoofdklasse selecteren

Met de Hoofdklasse geselecteerd, klikt u op Voltooien, zoals weergegeven in Afbeelding 14.


Figuur 14: JAR Export>Voltooien

De mainmodule.jar wordt geëxporteerd naar de MainModule/modules map, zoals weergegeven in Pakketverkenner in Afbeelding 15.


Figuur 15: JAR mainmodule.jar geëxporteerd

Het Dependency Java-project exporteren naar een JAR-bestand

In deze sectie zullen we het afhankelijkheidsproject HelloJavaModule . exporteren naar een JAR-bestand in dezelfde map als de hoofdmodule waarnaar JAR wordt geëxporteerd. De HelloJavaModule exporteren project naar een JAR-bestand, klik met de rechtermuisknop op het project in Pakketverkenner en selecteer Exporteren (zie afbeelding 16).


Figuur 16: Pakketverkenner>HelloJavaModule>Exporteren

In de Exporteren venster, selecteer Java>JAR-bestand , zoals weergegeven in Afbeelding 17, en klik op Volgende.


Figuur 17: Exporteren>Java>JAR-bestand>Volgende

In JAR-bestandsspecificatie , selecteer de bron die u wilt exporteren als de HelloJavaModule , zoals weergegeven in Afbeelding 18. Selecteer de exportbestemming hetzelfde als voor de hoofdmodule JAR, namelijk de MainModulemodules map. De JAR-bestandsnaam moet anders zijn en is helloJavaModule.jar . Klik op Volgende.


Figuur 18: JAR-bestandsspecificatie voor afhankelijkheid JAR

Selecteer de standaard JAR-verpakkingsopties, zoals weergegeven in Afbeelding 19, en klik op Volgende.


Figuur 19: Verpakkingsopties selecteren

Pas vervolgens de JAR-manifestspecificatie aan. Omdat het afhankelijkheidsproject geen klasse voor een toepassingsingangspunt bevat, bewaart u de Hoofdklasse veld als leeg, zoals weergegeven in Afbeelding 20, en klik op Voltooien.


Figuur 20: Geen hoofdklasse voor afhankelijkheidsproject

De helloJavaModule.jar wordt geëxporteerd naar de MainModule/modules map, zoals weergegeven in Pakketverkenner in Afbeelding 21.


Figuur 21: JAR geëxporteerd helloJavaModule.jar

Een uitvoeringsconfiguratie toevoegen

Om de Java-toepassing van de hoofdmodule uit te voeren, moeten we een runconfiguratie maken voor de MainModule projecteren. Klik met de rechtermuisknop op Hoofdmodule in Pakketverkenner en selecteer Eigenschappen , zoals weergegeven in Afbeelding 22.


Figuur 22: Pakketverkenner>MainModule>Eigenschappen

Selecteer in het venster Eigenschappen Instellingen uitvoeren/foutopsporing en klik op Nieuw… om een ​​nieuwe startconfiguratie te maken, zoals weergegeven in Afbeelding 23.


Figuur 23: Eigenschappen>Debug-instellingen uitvoeren>Nieuw…

In Selecteer configuratietype , selecteer Java-toepassing , zoals weergegeven in Afbeelding 24.


Figuur 24: Configuratietype selecteren als Java-toepassing

Geef in de configuratiewizard een naam op (MainModuleConfig ) in de Naam veld en met het Project geselecteerd als MainModule klik op Zoeken… voor de Hoofdklasse , zoals weergegeven in Afbeelding 25.


Figuur 25: Configuratie-eigenschappen voor starten instellen

In Selecteer hoofdtype , selecteer de main.module.MainModule typ (zie Afbeelding 26) en klik op OK.


Figuur 26: Hoofdtype selecteren

Met de Hoofdklasse geselecteerd, klikt u op de Argumenten om de volgende VM-args te selecteren, zoals weergegeven in Afbeelding 27.


Figuur 27: Tabblad Argumenten selecteren

Voeg de volgende VM-argumenten toe aan het veld VM-argumenten, zoals weergegeven in Afbeelding 28.

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

Het --module-pad arg stelt het modulepad in naar de twee JAR's voor de twee modules. De -m arg stelt de module in. Klik op Toepassen , zoals weergegeven in Afbeelding 28.


Figuur 28: Configuratie-instellingen uitvoeren

Klik op OK, zoals weergegeven in Afbeelding 29, om de runconfiguratie te voltooien.


Figuur 29: Uitvoeren van configuratie voltooien

Een nieuwe uitvoeringsconfiguratie, MainModuleConfig , wordt gemaakt, zoals weergegeven in Afbeelding 30. Klik op Toepassen en sluiten in het venster Eigenschappen.


Figuur 30: Eigenschappen toepassen voor MainModule-project

De Java-toepassing van de hoofdmodule uitvoeren

Vervolgens zullen we testen of de hoofdmodule de afhankelijkheidsmodule aanroept door de hoofdmoduletoepassing uit te voeren. Klik met de rechtermuisknop op MainModule.java in Pakketverkenner en selecteer Uitvoeren als>Java-toepassing (zie afbeelding 31).


Figuur 31: Pakketverkenner>Hoofdmodule>Uitvoeren als>Java-toepassing

De uitvoer van de Java-toepassing wordt weergegeven in de Console , zoals weergegeven in Afbeelding 32. Het bericht "Hallo van" van de hoofdmodule wordt gecombineerd met het bericht "Geëxporteerde Java-module!" van de afhankelijkheidsmodule om het bericht "Hallo van geëxporteerde Java-module!" uit te voeren.


Figuur 32: Console-uitgang

Conclusie

In twee artikelen hebben we het gebruik van moduleafhankelijkheden in Java 9 besproken.


  1. MySQL relationele databases gebruiken op Fedora 12

  2. Parameter doorgeven aan mssql-query in node js

  3. De naam van een beperking vinden in PostgreSQL

  4. ORA-03113:einde bestand op communicatiekanaal