0Pricing
Java Academy · Lektion

module-info.java

Ein Modul deklarieren

module-info.java ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Das Modulsystem

Das Java Platform Module System (JPMS), das in Java 9 eingeführt wurde, ermöglicht es Ihnen, Pakete in benannten Modulen mit expliziten Abhängigkeiten und Grenzen zu gruppieren.

Die Deklaration befindet sich in einer speziellen Datei: module-info.java.

Warum Module

Vor Modulen war der Classpath eine flache, unstrukturierte Sammlung von JARs. Jeder konnte auf jede öffentliche Klasse zugreifen, und fehlende Abhängigkeiten wurden erst zur Laufzeit erkannt.

Module sorgen für eine starke Kapselung und eine zuverlässige Konfiguration, die zur Kompilier- und Startzeit überprüft werden.

Wo module-info liegt

module-info.java liegt im Stammverzeichnis Ihres Quelltextbaums, oberhalb Ihrer Paketverzeichnisse. Die Datei wird am Stamm des Moduls in eine module-info.class kompiliert.

Pro Modul gibt es genau eine solche Datei.

Minimale Deklaration

Das einfachste Modul enthält nur einen Namen. Üblicherweise werden Namen wie bei einem Paket in umgekehrter DNS-Notation gebildet.

module com.example.app {
}

Eine Abhängigkeit deklarieren

Verwenden Sie requires, um von einem anderen Modul abhängig zu sein. Jedes Modul benötigt implizit java.base, daher müssen Sie dieses Modul nicht deklarieren.

module com.example.app {
    requires java.sql;
    requires java.logging;
}

Ein Paket freigeben

Standardmäßig sind die Pakete eines Moduls verborgen. Verwenden Sie exports, um die öffentlichen Typen eines Pakets für andere Module sichtbar zu machen.

module com.example.app {
    exports com.example.app.api;
}

Starke Kapselung

Jedes Paket, das Sie nicht durch export exportieren, ist von außerhalb vollständig unzugänglich, selbst seine öffentlichen Klassen. Das ist der große Unterschied zur Classpath-Welt.

Interne Pakete bleiben intern – durch die JVM erzwungen.

Regeln für Modulnamen

Modulnamen folgen denselben lexikalischen Regeln wie Pakete: durch Punkte getrennte Bezeichner. Wählen Sie einen stabilen, weltweit eindeutigen Namen, da andere Module anhand dieses Namens davon abhängen.

Das Umbenennen eines Moduls ist eine inkompatible Änderung für seine Consumer.

Ein vollständigeres Beispiel

Eine echte Deklaration kombiniert requires und exports. Dieses Modul hängt von der Protokollierung ab und stellt nur sein Paket mit der öffentlichen API bereit.

module com.example.orders {
    requires java.logging;
    requires com.example.payments;

    exports com.example.orders.api;
}

Ein Modul kompilieren

Sie kompilieren mit den modulbewussten Optionen. Die Optionen --module-source-path und -d geben dem Compiler an, wo sich Quellcode und Ausgabedateien befinden.

  • javac -d out --module-source-path src $(find src -name '*.java')
  • java --module-path out --module com.example.app/com.example.app.Main

Der Modulpfad

Module werden über den Modulpfad (--module-path) aufgelöst, den modularen Nachfolger des Classpaths. Der Launcher liest den Deskriptor jedes Moduls, um vor der Ausführung einen Abhängigkeitsgraphen zu erstellen.

Kurze Überprüfung

Rufen Sie sich die standardmäßige Sichtbarkeit von Paketen in Erinnerung.

Zusammenfassung

Sie haben die Grundlagen von module-info.java gelernt:

  • Ein Deskriptor pro Modul am Wurzelverzeichnis des Quellcodes
  • requires deklariert Abhängigkeiten; java.base ist implizit
  • exports stellt ein Paket bereit; alles andere ist gekapselt
  • Erstellung und Ausführung mit --module-path und --module

Als Nächstes: requires- und exports-Direktiven im Detail.

Häufig gestellte Fragen

Ist die Lektion „module-info.java“ kostenlos?

Ja — der vollständige Text von „module-info.java“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „module-info.java“?

Ein Modul deklarieren Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „module-info.java“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. module-info.java
  2. requires und exports
  3. Dienste mit provides/uses
  4. Auf Module migrieren
← Zurück zu Java Academy