Inhaltsverzeichnis
Wichtige Highlights
Java 9-Modulsystem
Typen von Java 9-Modulen
1. Anwendungsmodule
2. Automatische Module
3. Unbenanntes Modul
Modularer Deskriptor
Module der Java 9-Modulsystemanwendung
How to Create a New Java 9 Module?
Comparison Table of JDK 8 and JDK 9
Fazit
FAQs
Q1. Wie migriere ich meine Legacy-Anwendung in JAVA 9?
 Q2. Woher weiß ich, welche Module das System bereitstellt?
Q3. Ist es notwendig, IDE zu installieren, um in JAVA zu funktionieren?
 F4. Wie greife ich auf ein öffentliches Paket in meinem Modul zu?
Heim Java javaLernprogramm Java 9-Module

Java 9-Module

Aug 30, 2024 pm 03:53 PM
java

Das Java 9-Modul ist die neue Einheit, die als Sammlung von Paketen eingeführt wird, um ein bestimmtes Feature oder eine bestimmte Funktionalität bereitzustellen. Das Java 9-Modul ist die erste Version des Java Development Kit nach der Neuanordnung und Kategorisierung von Paketen in Module. Es ist auch als Java 9 Platform Module System (JPMS) bekannt. In Java 9 können Sie die Laufzeitgröße reduzieren, indem Sie nur die erforderlichen Module einbinden. Beispielsweise können Sie für ein Gerät, das keine GUIs unterstützt, eine Laufzeit erstellen, ohne die GUI-Module einzubeziehen.

Java 9-Module

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

 

Wichtige Highlights

  • Das Java 9-Modul ist die Implementierung einer Abstraktion von Paketen auf hoher Ebene.
  • Alle funktionsbezogenen Pakete sind in einem Modul mit insgesamt 95 Modulen zusammengefasst. Es bietet eine größere Plattformintegrität und eine starke Kapselung.
  • Es ermöglicht die Erstellung eines separaten Java-Moduls als modulare JAR-Datei für Java-Anwendungen oder Java-API.

Java 9-Modulsystem

  • In Java 9-Modulen werden die funktionsbezogenen Pakete in wiederverwendbaren Gruppen, sogenannten Modulen, zusammengefasst.
  • Das Java 9-Modul kann Ressourcen enthalten (z. B. Bilder und XML-Dateien). Das java.base-Modul ist ein unabhängiges Modul, das für jedes Modul erforderlich ist.
  • Die Systemmodule sind Standard und ihre Namen beginnen mit java.
  • Zum Beispiel JavaFX-Module (Namen beginnen mit JavaFX), JDK-Module (Namen beginnen mit jdk), Oracle-Module (Namen beginnen mit oracle).

Typen von Java 9-Modulen

1. Anwendungsmodule

  • Diese Module werden von Programmierern erstellt.
  • Das inoffizielle JAR mit zusammengestelltem Pfad enthält die kompilierte Klassendatei module-info.a, die den Namen und die Definition des Moduls enthält.

2. Automatische Module

  • Wenn dem Modul vorhandene JAR-Dateien hinzugefügt werden, werden automatische Module erstellt.
  • Der Name der JAR wird zum Namen des Moduls.

3. Unbenanntes Modul

  • Es handelt sich um eine Klasse oder JAR, die in den Klassenpfad, aber nicht in den Modulpfad geladen wird.
  • Es handelt sich um ein Sammelmodul, um die Abwärtskompatibilität mit zuvor geschriebenem Java-Code aufrechtzuerhalten.

Modularer Deskriptor

  • Die Datei module-info.java enthält die Moduldefinition oder Metadaten, die das Modul beschreiben.
  • Beim Kompilieren von module-info.java erhalten wir module-info.class, das den Moduldeskriptor enthält, der im Stammordner des Moduls gespeichert ist.
  • Modularer Deskriptor besteht aus einem oder mehreren Exporten und erfordert eine Klausel.
  • Es ist ein unabhängiges Modul, da es die Pakete in andere Module exportieren und die Pakete anderer Module verwenden kann.
  • Die Metadaten umfassen drei Dinge: einen eindeutigen Namen, eine Exportklausel und eine Required-Klausel.
  • Eindeutiger Name: Name des Moduls.

Code:

module eg.com.module1 
{

}
Nach dem Login kopieren
  • Exportklausel: Die Pakete im Modul können exportiert werden, da andere Module sie verwenden können.

Code:

module eg.com.module1 
{
   exports eg.com.module1.service;
}
Nach dem Login kopieren
  • Requires-Klausel: Sie wird verwendet, wenn Sie Pakete aus anderen Modulen benötigen.

Code:

{
   requires eg.com.module1;
}
Nach dem Login kopieren

Module der Java 9-Modulsystemanwendung

  • Zum Auflisten der Module des JDK-Sets aus dem bin-Ordner von jdk. Führen Sie den folgenden Befehl in CLI Java aus –list-modules
  • Das Schlüsselwort module wird zum Deklarieren des Moduls verwendet. Der Modulkörper ist in geschweifte Klammern eingeschlossen, wie in: Modul Modulname { }
  • Eine Export-Modulanweisung macht das Paket des Moduls für den Code in allen anderen Modulen zugänglich.
  • Ein Export…um einen qualifizierten Bericht zu definieren. Die Liste der Pakete, die auf das exportierte Paket zugreifen können, kann in einer durch Kommas getrennten Liste genau angegeben werden.

Code:

module com.educba.util 
{
exports com.educba.app;
exports com.educba.security to com.educba.client, com.educba.producer;
}
Nach dem Login kopieren
  • Wenn eine Open-Module-Direktive verwendet wird, werden alle Pakete in einem bestimmten Modul zur Laufzeit und über Reflektion für alle anderen Module zugänglich. Um den reinen Laufzeitzugriff auf alle Pakete in einem Modul zu ermöglichen, können Sie das gesamte Modul öffnen, wie in:

Code;

open module <em>modulename</em>

{
// module directives
}
Nach dem Login kopieren
  • To allow runtime-only access to packages in a module. An open module directive of the form opens package- can be used. The code in other modules can access the public types of a package and its nested public and protected types at runtime only. Reflection can be used to access all the types and the types’ members in the specified package.
  • The code in the listed modules can access the public types of a package and its nested public and protected types at runtime only. Reflection to code in the specified modules can be used to access all of the types and types’ members in the specified package.

How to Create a New Java 9 Module?

  • Create a directory structure
src\com.educba\com\educba
Nach dem Login kopieren
  • In the command prompt
mkdir –r src\com.educba\com\educba
Nach dem Login kopieren
  • Create a new module in a text editor and save it as a java file module-info.java.
module com.educba
{ }
Nach dem Login kopieren
  • Set the environment variable JAVA_HOME to the path where Java is installed.

For example, JAVA_HOME C:\Program Files\Java\jdk-9\bin

Add %JAVA_HOME% to PATH in control Panel->system->advanced system setting->environment variables.

  • To see the compiled module descriptor in the CLI.

Code:

>javap mods/com.educba/module-info.class
Nach dem Login kopieren

Output:

Java 9-Module

It shows requires java.base in the modules definition, though we had created an empty module. It is because java.base is the basic and independent module. All other modules depend on it.

Comparison Table of JDK 8 and JDK 9

The most obvious difference between JDK 8 and JDK 9.

Feature Java 8 Java 9
Top Level component Package Module
New features launched ●       Lambda Expressions

●       Stream API

●       Date API

●       Java Module System (Jigsaw Project)

●       Java REPL

●       Milling Project Coin

Performance Compromised performance due to big size of jdk Improved performance
Testing and maintaining applications Difficult with large size of JRE Easy with REPL and reduced size depending on modules included. JShell or REPL: Read and evaluate Print Loop for easy execution and testing of   Java Constructs like class, interface, enum, object, and statements easily.
Security It is compromised because of no encapsulation. Internal APIs can be accessed easily by users and potential hackers. Reflection could be used to learn about private members too. String security as Reflection does not provide access to private members. Only those exposed by export keywords are available through reflection.
Packaging format JAR JMOD can include native code and configuration files.

Fazit

Java 9 ist in der Tat die am meisten angestrebte Umstrukturierung von Java-Code, um ihn mit den neuen Codierungstechniken der verteilten Architektur kompatibel zu machen. Es hat dazu beigetragen, die Größe ausführbarer Dateien durch die Auswahl der erforderlichen Module zu reduzieren und so die Leistung zu verbessern. Die starke Kapselung hat eine höhere Sicherheit ermöglicht, da potenziellen Hackern weniger Klassen zur Verfügung stehen. Die Modularität hat für Transparenz bei der Deklaration und Bestimmung von Abhängigkeiten gesorgt.

FAQs

Q1. Wie migriere ich meine Legacy-Anwendung in JAVA 9?

Antwort: Sie können Ihre Legacy-Anwendung in Java 9 kompilieren. Beim Kompilieren treten Fehler für diejenigen Codeteile auf, die nicht in der modularen Struktur von Java 9 enthalten sind. Hier müssen Sie einige Ausgaben tätigen Zeit, die erforderlichen Module einzubinden. Sie können Ihren neuen Code mit Jshell auf die erforderliche Ausgabe testen.

 Q2. Woher weiß ich, welche Module das System bereitstellt?

Antwort: Mit den Java-Listenmodulen können die Module aufgelistet werden. Sie müssen die Dokumentation zu Rate ziehen, um mehr über ihre Funktionen zu erfahren.

Q3. Ist es notwendig, IDE zu installieren, um in JAVA zu funktionieren?

Antwort:Nein. Es hängt davon ab, wie gut Sie mit der Befehlszeilenschnittstelle vertraut sind. IDEs erledigen viele Aufgaben im Backend, die den Benutzern nicht bekannt sind. CLI ist die beste Option, um das Problem zu identifizieren und zu beheben.

 F4. Wie greife ich auf ein öffentliches Paket in meinem Modul zu?

Antwort: Sie müssen in der Moduldefinition Ihres Moduls Folgendes hinzufügen, um auf das öffentliche Paket zuzugreifen: info.java und required_package_name.

Das obige ist der detaillierte Inhalt vonJava 9-Module. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1672
14
PHP-Tutorial
1276
29
C#-Tutorial
1256
24
PHP vs. Python: Verständnis der Unterschiede PHP vs. Python: Verständnis der Unterschiede Apr 11, 2025 am 12:15 AM

PHP und Python haben jeweils ihre eigenen Vorteile, und die Wahl sollte auf Projektanforderungen beruhen. 1.PHP eignet sich für die Webentwicklung mit einfacher Syntax und hoher Ausführungseffizienz. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit präziser Syntax und reichhaltigen Bibliotheken.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Brechen oder aus Java 8 Stream foreach zurückkehren? Brechen oder aus Java 8 Stream foreach zurückkehren? Feb 07, 2025 pm 12:09 PM

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Php gegen andere Sprachen: Ein Vergleich Php gegen andere Sprachen: Ein Vergleich Apr 13, 2025 am 12:19 AM

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

PHP vs. Python: Kernmerkmale und Funktionen PHP vs. Python: Kernmerkmale und Funktionen Apr 13, 2025 am 12:16 AM

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

Auswirkungen von PHP: Webentwicklung und darüber hinaus Auswirkungen von PHP: Webentwicklung und darüber hinaus Apr 18, 2025 am 12:10 AM

PhPhas significantantyPactedWebDevelopmentAndendendsbeyondit.1) iTpowersMAjorPlatforms-LikewordpressandExcelsInDatabaseInteractions.2) php'SadaptabilityAllowStoscaleForLargeApplicationsfraMe-Linien-Linien-Linien-Linienkripte

PHP: Die Grundlage vieler Websites PHP: Die Grundlage vieler Websites Apr 13, 2025 am 12:07 AM

Die Gründe, warum PHP für viele Websites der bevorzugte Technologie -Stack ist, umfassen die Benutzerfreundlichkeit, die starke Unterstützung der Community und die weit verbreitete Verwendung. 1) Einfach zu erlernen und zu bedienen, geeignet für Anfänger. 2) eine riesige Entwicklergemeinschaft und eine reichhaltige Ressourcen haben. 3) in WordPress, Drupal und anderen Plattformen häufig verwendet. 4) Integrieren Sie eng in Webserver, um die Entwicklung der Entwicklung zu vereinfachen.

PHP vs. Python: Anwendungsfälle und Anwendungen PHP vs. Python: Anwendungsfälle und Anwendungen Apr 17, 2025 am 12:23 AM

PHP eignet sich für Webentwicklungs- und Content -Management -Systeme, und Python eignet sich für Datenwissenschafts-, maschinelles Lernen- und Automatisierungsskripte. 1.PHP hat eine gute Leistung beim Erstellen von schnellen und skalierbaren Websites und Anwendungen und wird üblicherweise in CMS wie WordPress verwendet. 2. Python hat sich in den Bereichen Datenwissenschaft und maschinelles Lernen mit reichen Bibliotheken wie Numpy und TensorFlow übertrifft.

See all articles