module-info.java
Dichiarare un modulo
module-info.java è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Il sistema dei moduli
Il Java Platform Module System (JPMS), introdotto in Java 9, consente di raggruppare i package in moduli denominati, con dipendenze e confini espliciti.
La dichiarazione si trova in un file speciale: module-info.java.
Perché usare i moduli
Prima dei moduli, il classpath era un insieme piatto e non strutturato di JAR. Chiunque poteva accedere a qualsiasi classe pubblica e le dipendenze mancanti venivano rilevate soltanto in fase di esecuzione.
I moduli aggiungono incapsulamento forte e configurazione affidabile, verificati in fase di compilazione e di avvio.
Dove si trova module-info
module-info.java si trova nella radice dell'albero dei sorgenti, al di sopra delle directory dei package. Viene compilato in un module-info.class nella radice del modulo.
Ne esiste esattamente uno per modulo.
Dichiarazione minima
Il modulo più semplice contiene soltanto un nome. Per convenzione, i nomi usano la notazione DNS inversa, come i package.
module com.example.app {
}Dichiarare una dipendenza
Utilizzi requires per dipendere da un altro modulo. Ogni modulo richiede implicitamente java.base, quindi non è mai necessario dichiararlo.
module com.example.app {
requires java.sql;
requires java.logging;
}Esporre un package
Per impostazione predefinita, i package di un modulo sono nascosti. Utilizzi exports per rendere i tipi pubblici di un package visibili agli altri moduli.
module com.example.app {
exports com.example.app.api;
}Incapsulamento forte
Qualsiasi package non dichiarato con export è completamente inaccessibile dall'esterno, incluse le sue classi pubbliche. Questa è la grande differenza rispetto al mondo del classpath.
I package interni rimangono interni, come imposto dalla JVM.
Regole per la denominazione dei moduli
I nomi dei moduli seguono le stesse regole lessicali dei package: identificatori separati da punti. Scelga un nome stabile e globalmente univoco, perché gli altri moduli vi fanno riferimento per nome.
Rinominare un modulo è una modifica incompatibile per i moduli che lo usano.
Un esempio più completo
Una dichiarazione reale combina requires ed exports. Questo modulo dipende dal logging ed espone solo il package della sua API pubblica.
module com.example.orders {
requires java.logging;
requires com.example.payments;
exports com.example.orders.api;
}Compilare un modulo
Si compila usando le opzioni specifiche per i moduli. Le opzioni --module-source-path e -d indicano al compilatore dove si trovano i sorgenti e l'output.
javac -d out --module-source-path src $(find src -name '*.java')java --module-path out --module com.example.app/com.example.app.Main
Il module path
I moduli vengono risolti dal module path (--module-path), l'evoluzione modulare del classpath. Prima dell'avvio, il launcher legge il descrittore di ciascun modulo per costruire un grafo delle dipendenze.
Verifica rapida
Ricordi la visibilità predefinita dei package.
Riepilogo
Ha appreso le nozioni di base di module-info.java:
- Un descrittore per modulo nella radice dei sorgenti
requiresdichiara le dipendenze;java.baseè implicitoexportsespone un package; tutto il resto è incapsulato- I moduli vengono compilati ed eseguiti con
--module-pathe--module
Successivo: direttive requires ed exports in dettaglio.
Domande Frequenti
La lezione «module-info.java» è gratuita?
Sì — il testo completo di «module-info.java» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «module-info.java»?
Dichiarare un modulo Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «module-info.java»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- module-info.java
- requires e exports
- Servizi con provides/uses
- Migrazione ai moduli