Generazione del file JAR del progetto
Il JAR dovrà essere eseguibile e contenere, oltre ai file compilati,
i file sorgenti e la relazione. Per generare il JAR seguire scrupolosamente le
indicazioni seguenti.
Supponiamo che il progetto abbia i seguenti package:
project.archive
project.app
project.app.gui
project.app.tui
Allora, prima di produrre il JAR del progetto conviene che i file siano
distribuiti in opportune directory secondo il seguente schema:
base
|--- project
| |--- archive
| | |--- ArchiveClass1.class
| | |--- ArchiveClass2.class
. . . .
. . . .
. . . .
| |--- app
| | |--- Main.class
| | |--- gui
| | | |--- GuiClass1.class
| | | |--- GuiClass2.class
. . . . .
. . . . .
. . . . .
| | |--- tui
| | | |--- TuiClass1.class
| | | |--- TuiClass2.class
. . . .
. . . .
. . . .
|--- src
| |--- project
| | |--- archive
| | | |--- ArchiveClass1.java
| | | |--- ArchiveClass2.java
. . . . .
. . . . .
. . . . .
| | |--- app
| | | |--- Main.java
| | | |--- gui
| | | | |--- GuiClass1.java
| | | | |--- GuiClass2.java
. . . . . .
. . . . . .
. . . . . .
| | | |--- tui
| | | | |--- TuiClass1.java
| | | | |--- TuiClass2.java
. . . . .
. . . . .
. . . . .
|--- INFO.pdf
Quindi, in una directory (che qui è chiamata base
) ci deve essere
la gerarchia di directory che corrisponde ai package e che contiene i
file compilati (i file .class
) e poi nella directory
src
ci deve essere una eguale gerarchia di directory che contiene
i file sorgenti (i file .java
). Inoltre, nella directory base
ci sarà un file (qui chiamato INFO.pdf
) che contiene la relazione.
Per costruire il JAR del progetto, con ad esempio il nome App.jar
, basta eseguire il seguente comando,
essendo posizionati nella directory base
:
jar -cfe App.jar project.app.Main src project INFO.pdf
Il comando crea un JAR che contiene le directory src
, project
(e il loro contenuto)
e il file INFO.pdf
. Inoltre, avendo specificato la classe
che contiene il metodo main()
(cioè la classe project.app.Main
),
il JAR sarà direttamente eseguibile tramite il comando:
java -jar App.jar
Per estrarre tutti i file dal JAR si può eseguire il comando (da una qualsiasi altra directory
in cui è stato posto il file App.jar
):
jar -xf App.jar
Questo riproduce la stessa gerarchia di directory e file che si aveva nella directory base
.
Inoltre, sarà anche generata la directory META-INF
contenente il
file MANIFEST.MF
(prodotto automaticamente dal comando jar
).
Prima di inviare il JAR del progetto accertarsi che risulti eseguibile e fare una estrazione
per controllare che contenga tutti i file e directory.
Per maggiori informazioni sul comando jar
e i file JAR si può consultare
il Tutorial.