Per creare un'applicazione Java standalone seguiamo i passi che portano alla creazione di una classe che contiene il metodo main
,
inseriamo il codice Java necessario, compiliamo il programma, correggiamo gli eventuali errori di compilazione e infine
mandiamo in esecuzione il programma.
Attraverso la compilazione ed esecuzione automatica di porzioni di codice Java la JShell
elimina l'overhead relativo alla creazione di classi container.
Su Microsoft Windows è possibile utilizzare la JShell da riga di comando aprendo una console e digitando:
$JAVA_HOME/bin/jshell
con la variabile $JAVA_HOME
che si riferisce al percorso relativo ad un'installazione delle JDK 9. In questo, e nei successivi capitoli, non utilizzeremo però
la console di Windows ma l'integrazione della JShell nella versione di Netbeans che abbiamo configurato nel primo capitolo. Mandiamo
in esecuzione l'ambiente Netbeans e, dal menù "Tools" dell'IDE, selezioniamo "Open Java Platform JShell":
La JShell verrà aperta e inizializzata. La console accetta due
tipi di input: il codice Java e i comandi propri della console.
Vediamo subito un esempio. Supponiamo di voler provare alcuni metodi della classe String
per comprenderne il funzionamento. Senza la JShell avremmo realizzato una classe
del tipo:
public class StringTest {
public static void main(String[] args) {
String str = "12345";
System.out.println(str.substring(0,2));
}
}
Con la JShell la classe StringTest
non è necessaria, è sufficiente inserire lo statement di dichiarazione della variabile String
,
str
, e successivamente l'istruzione System.out.println()
:
L'esecuzione della prima istruzione evidenzia la sintassi JShell che indica l'avvenuta creazione dell'oggetto String
inizializzato
con il valore specificato. L'esecuzione della seconda istruzione produce invece la stampa del risultato dell'invocazione del metodo
substring()
sulla console di output.
Analizziamo ora un esempio di errore mostrato dalla JShell e supponiamo di voler sommare due variabili intere di cui una non dichiarata:
La sintassi del punto di errore viene indicata con il simbolo ^--^
. L'errore di compilazione indica chiaramente che stiamo utilizzando una variabile non dichiarata.
Un aspetto interessante della JShell è la presenza di una history degli input inseriti. Infatti possiamo recuperare la situazione precedente dichiarando la variabile num2
:
Eseguendo nuovamente la somma recuperandola dalla history attraverso i tasti freccia della tastiera possiamo notare
la presenza di un numero preceduto dal simbolo sharp
accanto ad ogni istruzione. Questo numero è un'identificatore univoco dell'istruzione
all'interno della JShell. Se eseguiamo il comando /list
possiamo infatti visualizzare le istruzioni eseguite con successo e l'identificatore
associato:
Possiamo utilizzare l'identificatore di uno statement per riferirci ad esso nell'ambito di una particolare operazione. Ad esempio
se abbiamo la necessità di eseguire nuovamente uno statement precedentemente inserito, possiamo digitare l'ID
e premere invio:
Facciamo notare che durante l'uso della JShell è possibile avere blocchi o errori, si tratta infatti di una versione in fase di sviluppo.