Generazione del file JAR del progetto

Il JAR dovrà essere eseguibile e contenere, oltre ai file compilati, i file sorgenti e il file info. Per generare il JAR seguire scrupolosamente le indicazioni seguenti.

Supponiamo che il progetto abbia i seguenti package:

project.graph

project.treni

project.treni.util

Allora, prima di produrre il JAR del progetto conviene che i file siano distribuiti in opportune directory secondo il seguente schema:

base
  |--- project
  |         |--- graph
  |         |         |--- GraphClass1.class
  |         |         |--- GraphClass2.class
  .         .         .           .
  .         .         .           .
  .         .         .           .
  |         |--- treni
  |         |     |--- Main.class
  |         |     |--- util
  |         |     |     |--- UtilClass1.class    
  |         |     |     |--- UtilClass2.class
  .         .     .     .
  .         .     .     .
  .         .     .     .
  |--- src
  |     |--- project
  |     |         |--- graph
  |     |         |         |--- GraphClass1.java
  |     |         |         |--- GraphClass2.java
  .     .         .         .           .
  .     .         .         .           .
  .     .         .         .           .
  |     |         |--- treni
  |     |         |     |--- Main.java
  |     |         |     |--- util
  |     |         |     |     |--- UtilClass1.java
  |     |         |     |     |--- UtilClass2.java
  .     .         .     .     .
  .     .         .     .     .
  .     .         .     .     .
  |--- info.txt

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à il file info.txt. Per costruire il JAR del progetto, con ad esempio il nome Treni.jar, basta eseguire il seguente comando, essendo posizionati nella directory base:

jar -cfe Treni.jar project.treni.Main src project info.txt

Il comando crea un JAR che contiene le directory src, project (e il loro contenuto) e il file info.txt. Inoltre, avendo specificato la classe che contiene il metodo main() (cioè la classe project.treni.Main), il JAR sarà direttamente eseguibile tramite il comando:

java -jar Treni.jar

Per estrarre tutti i file dal JAR si può eseguire il comando (da una qualsiasi altra directory in cui è stato posto il file Treni.jar):

jar -xf Treni.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.