Dato che potrebbe tornare utile ai fini del progetto, riporto qui un breve esempio di come compilare ed eseguire classi Java da riga di comando, includendo anche GSON come libreria esterna. Le classi della libreria sono contenute in un file JAR scaricabile qui.
Supponiamo che la cartella principale del nostro progetto contenga due sottodirectory:
src
con tutti i file sorgente Java scritti da noi.lib
contenente il file JAR di GSON, chiamatogson-2.8.9.jar
.
Compilazione. Per compilare dobbiamo specificare il classpath, ovvero il percorso in cui il compilatore deve cercare le classi (sia quelle che abbiamo scritto noi, sia quelle del file JAR). Per farlo, dapprima è necessario posizionarsi dentro la directory src
e successivamente digitare:
javac -cp .:../lib/gson-2.8.9.jar *.java
In questo caso, data la struttura del nostro progetto, il classpath è rappresentato dalla stringa .:../lib/gson-2.8.9.jar
. Il senso della stringa è il seguente:
- Il primo punto
.
indica al compilatore di cercare le classi nella directory corrente (ovverosrc
, dove ci sono i sorgenti). - I due punti
:
sono un separatore, usato per far capire al compilatore che deve cercare le classi anche da un'altra parte. Nota: in questo esempio ho usato il:
perché funziona su Linux e macOS. Su Windows, però, il separatore è il carattere di punto e virgola;
. - La stringa
../lib/gson-2.8.9.jar
indica il percorso (relativo) del file JAR partendo dalla directory corrente. Per trovare il file, infatti, occorre tornare al livello superiore..
e poi entrare nella cartellalib
.
Esecuzione. La stessa cosa vale anche nel caso dell’esecuzione: per far partire il programma, è necessario specificare il classpath in modo tale che la JVM individui le nostre classi e quelle di GSON. Supponiamo dunque di aver compilato il codice e che la classe contenente il metodo main
(ovvero l'entry point del nostro programma) sia denominata Main
(e contenuta ovviamente in src
). Dopo esserci posizionati nella cartella src
, possiamo digitare il comando
java -cp .:../lib/gson-2.8.9.jar Main ...
dove i tre puntini ...
rappresentano gli eventuali parametri da riga di comando necessari per il funzionamento dell'applicazione.