APPENDICE Appendice Strumenti per lo sviluppo dei programmi Java Per imparare a programmare non è sufficiente leggere gli esempi del testo, ma è necessario scrivere ed eseguire realmente i programmi. Tutti i programmi di esempio sono forniti come file in formato sorgente, in modo che sia possibile compilarli, eseguirli e sperimentarne il funzionamento. Questa appendice serve a coloro che devono installare gli strumenti di supporto necessari sul proprio computer. Chi avesse accesso a un laboratorio con gli strumenti necessari già preinstallati, potrà leggere comunque questa appendice come informazione generale. In questa appendice si prenderanno in considerazione più modi per eseguire i programmi Java, che possono essere genericamente suddivisi in tre categorie: minimalista, con editor avanzato e in ambiente di sviluppo integrato o IDE (Integrated Development Environment). Ai programmatori alle prime armi si consiglia l approccio con editor avanzato. Esistono ulteriori informazioni, per esempio le istruzioni passo a passo per utilizzare alcuni degli strumenti menzionati in questa appendice, nel sito Web associato al volume. Si consiglia di leggere il Capitolo 2 prima di questa Appendice. Alla fine di questa appendice si descriverà come utilizzare le classi di un package definito dal programmatore, come il package javabook fornito dall autore, nei propri programmi. L approccio minimalista Con questo approccio si usa il minimo necessario per poter compilare ed eseguire i programmi Java. Si devono scaricare il compilatore e altri strumenti necessari per compilare ed eseguire i programmi, dal sito Web della Sun Microsystems http://java.sun.com. Un insieme di strumenti per compilare ed eseguire programmi Java è l SDK (Software Development Kit) Java 2. La Sun Microsystems usa spesso il termine JDK (Java Development Kit) in luogo di SDK. La Sun Microsystems fornisce tre versioni di SDK: l edizione enterprise (J2EE SDK), l edizione standard (J2SE SDK) e l edizione micro (J2ME SDK). È necessario scaricare la versione standard. Si descrivono ora le operazioni necessarie per la piattaforma Windows.
832 Appendice 1. Installazione Si accede all URL: http://java.sun.com/javase/downloads/index.jsp. Si noti che gli indirizzi Web cambiano frequentemente. Se l indirizzo precedente non dovesse essere valido, si deve ricercare la pagina corretta a partire dalla homepage di Java all indirizzo http://java.sun.com. A questo punto è necessario scegliere una versione di JDK. Nel momento in cui si scrive questo testo (maggio 2008), è possibile scaricare la versione 6, aggiornamento 6 (Version 6 - Update 6). Dopo tale scelta, è necessario selezionare la piattaforma Windows, accettare i termini di licenza, e premere il pulsante Continue. Si consiglia di selezionare l opzione Windows Offline Installation, Multi-language e il link jdk-6u6-windows-i586-p.exe. In questo modo, è possibile scegliere se eseguire il file jdk-6u6-windows-i586-p.exe o scaricarlo. Si supponga di salvarlo nella cartella C:\Programmi\Java. È possibile cambiare il nome della cartella o la sua posizione. Una volta scaricato il file, lo si esegue (con un doppio click sull icona) per iniziare l installazione. Al termine dell installazione (con successo) si potrà notare la cartella jdk1.6.0_06, contenente alcune sotto-cartelle, quali bin e lib. 2. Creazione di un programma È possibile ora creare un programma. Usando Notepad (o qualsiasi altro editor di testo, ma non un word processor che, oltre al testo, salva nel documento anche delle informazioni di formattazione), si può creare il programma seguente: import javax.swing.*; class MyFirstProgram { public static void main(string[] arg){ JOptionPane.showMessageDialog(null, "It works!"); System.exit(0); } } Introdurre il testo precedente esattamente come mostrato, prestando attenzione anche alle lettere minuscole e maiuscole. Nota: un editor di testo semplice come Notepad, visualizzerà il codice esclusivamente in colore nero. 3. Salvataggio del programma Prima di compilare ed eseguire il programma, è necessario salvarlo in un file. Per prima cosa si crea una cartella. In questo esempio si crea una cartella di nome JavaPrograms nel drive C: C:\JavaPrograms Per salvare il programma selezionare la voce di menu File / Save del Notepad e inserire il nome MyFirstProgram.java. Mettere questo file nella cartella C:\JavaPrograms. Il nome della classe è MyFirstProgram, quindi la si salva come MyFirstProgram.java. Se il programma si chiamasse XYZ, lo si dovrebbe salvare come XYZ.java. Si noti che è necessario prestare attenzione alle lettere minuscole / maiuscole. Quando si usa il Notepad, fare attenzione che il file non venga sal-
Strumenti per lo sviluppo dei programmi Java 833 vato come MyFirstProgram.java.txt. Assicurarsi che non vi sia il suffisso txt nel nome del file salvato. Per evitare che il suffisso txt venga automaticamente aggiunto al nome del file, non dimenticare di impostare il valore di Save as type come All Files. 4. Apertura della finestra prompt dei comandi Una volta creato e salvato il file sorgente, si procede alla sua compilazione ed esecuzione. Si usa una finestra prompt dei comandi per immettere i comandi necessari per compilare ed eseguire i programmi Java. Aprire una finestra prompt dei comandi selezionando l opzione Start / Run e introdurre il testo cmd nel campo testo della finestra di dialogo Run (se cmd non funziona, provare command):
834 Appendice Selezionare il pulsante OK. Sullo schermo appare una finestra prompt dei comandi: Da questo punto in poi, tutti i comandi vengono immessi in questa finestra. 5. Impostazione dell ambiente Prima di poter compilare ed eseguire il programma, si devono impostare alcune variabili d ambiente. Per prima cosa ci si deve posizionare nella cartella JavaPrograms dove è memorizzato il file sorgente, introducendo il comando cd JavaPrograms (e premendo il tasto Invio): C:\> cd \JavaPrograms C:\>JavaPrograms> Nota: la spiegazione dei comandi DOS non rientra negli scopi di questo libro. Se fosse necessario, consultare altre fonti di informazioni. Introdurre i due comandi seguenti in sequenza, per impostare le variabili d ambiente: C:\JavaPrograms>set path=c:\programmi\java\jdk1.6.0_06\bin C:\JavaPrograms>set classpath=. C:\JavaPrograms>
Strumenti per lo sviluppo dei programmi Java 835 Immettere i comandi esattamente come riportato. Per esempio, non introdurre spazi fra i simboli di uguaglianza (=). Il primo comando imposta la variabile d ambiente PATH in modo che si possa fare riferimento ai file eseguibili nella sotto-cartella bin di C:\Programmi\Java\jdk1.6.0_06. Il secondo comando indica al compilatore e all interprete Java dove trovare i file sorgente. Il punto (.) indica la cartella corrente. È sufficiente introdurre i due comandi una sola volta. 6. Compilazione del programma Si può procedere ora alla compilazione del programma. Per compilare un file sorgente Java, usare il comando javac seguito dal nome del file sorgente. Immettere esattamente il comando seguente, prestando attenzione anche alle lettere minuscole / maiuscole: C:\JavaPrograms>javac MyFirstProgram.java Dopo un attimo di pausa, se non vi sono errori nel programma, appare il prompt per introdurre il comando successivo. Se vi sono errori appare invece un messaggio di errore. In questo caso riprendere Notepad e controllare il programma, apportare le modifiche necessarie e salvare. Quindi immettere nuovamente il comando javac. Come spiegato nel Capitolo 2, la corretta compilazione del sorgente produrrà un file con il bytecode. 7. Esecuzione del programma Effettuata la compilazione del programma con successo, si può procedere alla sua esecuzione eseguendone il file bytecode corrispondente. Per questo, si usa il comando java seguito dal nome del file bytecode (senza suffisso). Introdurre il comando seguente e premere il tasto Invio: C:\JavaPrograms> java MyFirstProgram Il programma inizia e appare sullo schermo la finestra di dialogo seguente: Chiudere il dialogo selezionando il pulsante OK. Congratulazioni! Il programma è stato correttamente eseguito. Il significato dell istruzione System.exit L ultima istruzione del programma di esempio era: System.exit(0);
836 Appendice Essa comporta la terminazione del programma. Se si adotta l approccio minimalista con Notepad (o altro semplice editor di testo) e la finestra prompt dei comandi, è necessario includere l istruzione exit per terminare il programma di esempio MyFirstProgram. Se non viene inclusa, il programma non termina. La finestra di dialogo scompare dallo schermo quando si preme il pulsante OK ma il programma rimane comunque attivo. In questo caso non riappare il prompt nella finestra dei comandi. E naturalmente, se non si ottiene il prompt, non si può immettere un nuovo comando. Non tutti i programmi si comportano in questo modo. In particolare, un programma che usa lo standard input e lo standard output basati su console non richiede l istruzione exit, mentre un programma che utilizza un interfaccia grafica con oggetti GUI (come MyFirstProgram che utilizza l oggetto GUI JOptionPane per l output) richiede l istruzione exit. Quando si usa l approccio minimalista, la cosa più semplice da fare è includere l istruzione exit in tutti i programmi. L approccio con editor evoluto Nel caso di un programma molto semplice, l approccio minimalista può rappresentare un alternativa accettabile. Tuttavia, per programmi più complessi, l approccio minimalista risulta scomodo. A differenza dell approccio minimalista nel quale si utilizzano degli strumenti indipendenti per l editing (Notepad), la compilazione e l esecuzione (prompt dei comandi) dei programmi, con l approccio dell editor evoluto si interagisce con un unico strumento che consente di editare, compilare ed eseguire i programmi Java. Si raccomanda questo approccio ai programmatori alle prime armi. Esistono vari ottimi strumenti che ricadono in questa categoria. Alcuni dei più conosciuti sono: TextPad (www.textpad.com) jedit (www.jedit.org) JCreator (www.jcreator.com) BlueJ (www.bluej.org) jgrasp (www.eng.auburn.edu/grasp) Si possono trovare altri editor evoluti cercando su Google con le parole chiave java editors. La maggior parte di questi strumenti è disponibile gratuitamente o a un costo irrisorio. Questi strumenti sono differenti nello stile dell interfaccia utente e nelle opzioni supportate, ma condividono alcune caratteristiche: 1. Supportano la differenziazione dei vari elementi sintattici con opportuni colori. I differenti elementi sintattici del codice vengono visualizzati con colori diversi (per esempio le parole riservate in blu, i commenti in verde, le costanti stringhe in marrone ecc.). 2. Utilizzano l SDK Java 2. Gli editor avanzati forniscono un ambiente nel quale è possibile introdurre, compilare ed eseguire i programmi Java, ma la reale compilazione ed esecuzione dei programmi viene effettuata dagli strumenti dell SDK Java2 (javac, java ecc.). In altre parole, anziché dover utilizzare direttamente gli strumenti dell SDK introducendo i comandi nella finestra prompt dei comandi, li si utilizzano scegliendo le corrispondenti voci di menu dell editor avanzato. Poiché non è possibile descrivere adeguatamente gli editor avanzati nel limitato spazio a disposizione, è necessario fare riferimento ai rispettivi siti Web. Inoltre i manuali sintetici su come utilizzare gli editor avanzati elencati in questo paragrafo sono disponibili nel sito Web associato a questo volume.
Strumenti per lo sviluppo dei programmi Java 837 L approccio IDE Gli strumenti IDE sono orientati ai programmatori professionisti che sviluppano programmi su larga scala. JBuilder della Borland, Eclipse, Metrowerks CodeWarrior e NetBeans sono alcuni dei più diffusi IDE completi. Oltre a numerose funzioni, essi includono solitamente un editor visuale che consente ai programmatori di progettare l interfaccia utente trascinando e posizionando direttamente gli oggetti GUI nella finestra dell applicazione, da una tavolozza di componenti. Questi ambienti IDE sono complessi: l impiego efficace delle numerose funzioni supportate richiede tempo. Per questo motivo non è un approccio raccomandato ai programmatori alle prime armi. L impiego di package definiti dal programmatore Quando si utilizzano le classi dei package di sistema come javax.swing, java.util e altri, è sufficiente includere le istruzioni di import appropriate. Questo non è sufficiente quando si utilizzano le classi di package definiti dal programmatore: in questo caso si devono impostare opportunamente le variabili d ambiente. Il modo esatto di impostare l ambiente dipende dai particolari strumenti di sviluppo che si utilizzano. Si descriverà come impostare le variabili d ambiente per poter utilizzare i package definiti dal programmatore con l approccio minimalista. Nel sito Web associato a questo volume sono disponibili ulteriori informazioni sull impiego dei package definiti dal programmatore con l approccio con editor avanzato. Si utilizzerà il package javabook fornito dall autore come esempio per illustrare la procedura. Si possono scaricare il package e la relativa documentazione dal sito Web associato a questo volume. Si suppone che le classi di javabook siano state scaricate e installate nella cartella C:\JavaPrograms\javabook. Si noti che il nome del package è javabook, e che anche la cartella che contiene le classi di questo package è chiamata javabook: si tratta di un requisito obbligatorio. Le classi nel package xyz devono essere messe in una cartella chiamata xyz. La cartella xyz, tuttavia, può essere posizionata ovunque si desideri. In questo esempio si mette la cartella javabook in C:\JavaPrograms. Una volta effettuata correttamente l installazione, si dovrebbero vedere i file sorgente e i file bytecode delle classi javabook, come MainWindow.java, MainWindow.class, OutputBox.java, OuptutBox.class e altre, nella cartella C:\JavaPrograms\javabook. In questo esempio si ipotizza che le classi del package javabook fornito dall autore, siano disponibili nella cartella: C:\JavaPrograms\javabook È sufficiente modificare l impostazione della variabile di ambiente classpath: set classpath=.;c:\javaprograms Si noti che si specifica il percorso completo della cartella che contiene la cartella javabook. Per utilizzare le classi javabook memorizzate nella cartella C:\JavaPrograms\javabook, impostare la variabile di ambiente classpath con il comando: set classpath=.;c:\javaprograms