strumenti

compilare, eseguire e provare codice Java

In alcune occasioni per scrivere un programma è comodo usare strumenti alternativi, vediamo alcune possibilità che possono essere di aiuto sia per fare delle prove che per provare programmi che non funzionano correttamente.

jshell

jshell è un programma che ci permette di provare "al volo" piccole parti di codice java senza dover scrivere tutto il programma... anche una singola espressione! È disponibile dalla versione 9 del JDK (Java Development Kit).

Per poterlo usare basta aprire una shell (cmd su Windows o un terminale qualsiasi su Linux/maxOS oppure ancora la vista "Terminale" di eclipse) e scrivere jshell (in caso il sistema operativo non trovi il comando vedi più in basso la sezione "path").

Il programma presenta un prompt jshell> che ci permetterà di inserire delle parti di codice che verranno compilate ed interpretate al volo. Possiamo ad esempio scrivere 10/3 e vedere quale è il risultato.

jshell> 10/3
$1 ==> 3

In questo modo jshell ci informa che il risultato dell'operazione è stato inserito nella variabile $1 che potremo usare per elaborazioni future.

Potremmo continuare scrivendo l'espressione "numero di pacchi: "+$1 e assegnando il suo valore alla variabile testo che dobbiamo però prima dichiarare.

jshell> String testo
testo ==> null

jshell> testo = "numero di pacchi: "+$1
testo ==> "numero di pacchi: 3"

Due ultime cose: per recuperare linee di codice già scritte basta usare il tasto "freccia su", per uscire bisogna scrivere /exit

Compilare/eseguire i programmi da terminale

Poniamo che per un motivo qualsiasi non si voglia usare un ambiente di sviluppo integrato, nel kit di sviluppo di Java c'è tutto quel che serve per compilare ed eseguire un programma.

Per vedere come funzionano questi programmi utilizzeremo una cartella prova sulla scrivania e un terminale (cmd o PowerShell per Windows, un terminale qualsiasi su macOS o Linux) aperto nella stessa cartella.

path

Per poter usare i comandi è necessario informare il sistema operativo sulla loro ubicazione

nel caso di Windows 10 dobbiamo fare una sequenza di passi:

nel caso di Windows 8 una sequenza possibile è questa:

Scrittura

Per scrivere il programma serve un editor di testo come ad esempio il Blocco note di windows o Gedit di Linux, non un elaboratore testi come LibreOffice o Word.

Inseriamo nella cartella prova un file Saluto.java fatto così:

public class Saluto{
	public static void main(String args[]){
		System.out.println("ciao mondo!");
	}
}

Bisogna assicurarsi che il file si chiami esattamente Saluto.java e non Saluto.java.txt, dal terminale aperto nella cartella prova si può verificare scrivendo dir in Windows o ls in Linux/macOS.

Compilazione

Sempre con il terminale aperto nella solita cartella in cui si trova il file Saluto.java useremo il comando javac.

Saluto.java è il nostro file sorgente e va compilato in modo che java possa eseguirlo: il comando da usare è javac seguito dal nome del file da compilare.

$ javac Saluto.java

Se tutto va bene (cioè se non compaiono messaggi nel terminale) nella cartella comparirà un file in più chiamato Saluto.class che contiene il codice compilato. Guardando l'elenco dei file contenuti nella cartella dovrebbe comparire:

Saluto.class 
Saluto.java

Interpretazione

Per eseguire il programma dobbiamo avviare l'interprete javadicendogli quale è il programma da avviare (che in java, guarda caso, si chiama classe), non bisogna mettere il ".class" finale ma soltanto il nome.

java Saluto

In questo caso l'ouput del programma compare direttamente nel terminale.