Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 PASSO 0 Agenda Informazioni di servizio per i laboratori PASSO 1 Installazione del JDK e impostazione del PATH PASSO 2 Presentazione del tool da linea di comando 2
Agenda PASSO 0 Informazioni di servizio per i laboratori PASSO 1 Installazione del JDK e impostazione del PATH PASSO 2 Presentazione del tool da linea di comando 3 Credenziali Come si accede ai PC dei Laboratori?? USERNAME: x0 seguito dal numero di matricola (senza gli zeri iniziali) PASSWORD: pin del badge 4
Configurazione del Proxy (1/2) Mozilla Firefox Strumenti Opzioni Generale Impostazioni connessione 5 Configurazione del Proxy (2/2) Internet Explorer Strumenti Opzioni Internet Connessioni Impostazioni LAN Deselezionare Rileva automaticamente impostazioni Selezionare Utilizza script di configurazione automatica e inserire http://192.168.69.249/proxy.pac 6
Agenda PASSO 0 Informazioni di servizio per i laboratori PASSO 1 Installazione del JDK e impostazione del PATH PASSO 2 Presentazione del tool da linea di comando 7 Installazione del JDK (1/2) Importante capire la differenza fra: JDK 1.6.0 ( Java 6 ) È un insieme di strumenti e di utilità (es. compilatore) necessari per SVILUPPARE applicazioni Java JRE (Java Runtime Environment) Rappresenta lo strato infrastrutturale di Java che permette di ESEGUIRE un applicazione 8
Installazione del JDK (2/2) Scaricare e installare il JDK Il JDK 1.6.0 può essere scaricato gratuitamente insieme a tutta la documentazione sul sito java.sun.com. Bisogna fare attenzione che il prodotto che si sta scaricando sia relativo alla piattaforma che vogliamo utilizzare Impostare il PATH La variabile d ambiente PATH specifica il percorso di ricerca dei file eseguibili (ad esempio javac.exe) procedimento operativo 9 Impostazione del Path (1/6) Windows XP (NT/2000) Start (Impostazioni) Pannello di Controllo Sistema Pannello Avanzate Variabili d ambiente (in NT direttamente Variabili d ambiente) In Variabili di Sistema modificare la voce Path (se non è presente aggiungerla) Aggiungere in coda (preceduto da ; ): c:\<path_jdk>\bin es: c:\programmi\java\jdk1.6.0\bin 10
Impostazione del Path (2/6) Windows Vista/7 Start (Impostazioni) Pannello di Controllo Sistema Impostazioni Avanzate 11 Impostazione del Path (3/6) L impostazione del path permette da linea di comando di trovare il percorso del compilatore java chiamato javac Per accedere al Prompt dei comandi Start Programmi (Accessori) Prompt dei comandi oppure Esegui cmd (solo da Windows XP in poi) 12
Impostazione del Path (4/6) Vediamo se siamo stati bravi Esecuzione di javac Siamo Stati Bravi!!! NON Siamo Stati Bravi! 13 Impostazione del Path (5/6) Windows 98 Aprire un editor di testo (es: Blocco Note) All interno dell editor aprire c:\autoexec.bat (NB: nella finestra di selezione del file impostare il Tipo File a Tutti i file) Aggiungere nella riga che specifica il path (senza spazi): es: c:\<path_jdk>\bin PATH C:\WINDOWS;c:\Programmi\jdk160\bin Per rendere attive le modifiche riavviare la macchina 14
Impostazione del Path (6/6) Windows Millenium Edition Start Programmi Accessori Utilità di sistema Informazioni di Sistema Selezionare il menu Strumenti Configurazione di Sistema Nel pannello ambiente selezionare path e modificarlo aggiungendo: c:\<path_jdk>\bin es: c:\programmi\java\jdk1.6.0\bin Per rendere attive le modifiche riavviare la macchina 15 Agenda PASSO 0 Informazioni di servizio per i laboratori PASSO 1 Installazione del JDK e impostazione del PATH PASSO 2 Presentazione del tool da linea di comando 16
Perché da linea di comando? In alcune situazioni potrebbe non essere disponibile un ambiente di sviluppo (vedi Eclipse) Un I ngegnere deve sempre uscire vittorioso anche in condizioni avverse 17 Primo Esempio - Implementazione 1. Creiamo un file con Blocco Note nominandolo Esempio1.java * Applicazione Java da linea di comando. * Stampa la classica frase di benvenuto @author Fondamenti di Informatica T-2 @version 1.0 02/2009 public class Esempio1 * Il main. NB: il nome del file deve essere identico al nome della classe Per evitare problemi con l'estensione del file, al momento del salvataggio scegliere salva come Tutti i File e inserire il nome completo (Esempio1.java): altrimenti, il file potrebbe essere salvato con l'estensione predefinita per i file di testo e dunque con nome Esempio1.java.txt * Stampa l'argomento passato da linea di comando public static void main(string args[]) System.out.println(args[0]); 18
Primo Esempio - Compilazione 2. Compiliamo da linea di comando tramite il comando javac Esempio1.java javac compila il file Esempio1.java e produce il file Esempio1.class (che contiene il bytecode) 3. Generiamo la documentazione tramite comando javadoc Esempio1.java javadoc genera la documentazione associata al file sorgente Esempio1.java se all interno del codice vengono inseriti in maniera opportuna dei commenti Tool di base: http://java.sun.com/javase/6/docs/technotes/tools/index.html 19 Opzione -help -verbose -classpath classpath -sourcepath sourcepath Sintassi di Javac javac [options] [sourcefiles] Descrizione Visualizza l help Visualizza l output completo di compilazione Imposta il classpath, se non impostato recupera quello di default del sistema. Permette di specificare la directory in cui cercare i sorgenti (.java). Se non impostato utilizza la directory corrente. -d directory Specifica una directory in cui salvare i bytecode (.class) -g Permette di generare le informazioni per il debugging -deprecation -nowrite -source [version] Avvisa ad ogni utilizzo di metodi deprecati Controlla solo la sintassi senza compilare Permette di compilare per una specifica versione di java (Es. 1.5). 20
Commenti Javadoc Un commento per essere interpretato da javadoc deve iniziare con Un commento javadoc: può essere associato a classi, metodi e campi è composto da una descrizione e da una serie di tags opzionali preceduti da @ * Il main. * Stampa l'argomento passato da linea di comando * @author Fondamenti di Informatica T2 21 Commenti Javadoc - Tags Opzione @author [author] @deprecated [description] @param [name] [description] @returns [description] Descrizione Per indicare l autore (Attenzione: è necessario indicare author da linea di comando affinchè questo tag venga considerato. V. slide successive) Indica che il metodo/classe descritto è stato rimpiazzato e ne è sconsigliato l utilizzo. Può seguire una descrizione su cosa utilizzare in alternativa. Descrive un parametro in ingresso di un metodo. (Es. @param args Argomenti passati in ingresso) Parametro di ritorno 22
Sintassi di Javadoc javadoc [options] [pakagenames] [sourcefiles] Opzione -help Descrizione Visualizza l help -d directory Specifica una directory in cui creare la documentazione, il default è la directory corrente. -version -author Include i paragrafi @version Include i paragrafi @author Esistono molte altre opzioni, per i dettagli si rimanda all help specifico javadoc help 23 Bytecode Primo Esempio Documentazione prodotta Sorgente 24
Primo Esempio - Esecuzione 4. Eseguiamo l applicazione creata con il comando java Esempio1 Hello!!!!!!! Esegue il file Esempio1.class (contenente il main) interpretando il bytecode. Importante: non bisogna indicare l estensione del file (.class) 25 Sintassi di Java java [options] class/jar Opzione -help -jar -classpath -verbose -version Descrizione Visualizza l help Per eseguire un file jar (Eseguibile) Imposta il classpath, se non impostato recupera quello di default del sistema. Visualizza l output completo Visualizza la versione di java attualmente installata 26
Primo Esempio - Creazione jar 5. Creiamo un file jar eseguibile con il comando jar cmf info.txt Esempio1.jar Esempio1.class Dove info.txt è un file di testo che contiene la riga: Main-Class: Esempio1 6. Eseguiamo il file jar eseguibile con il comando java -jar Esempio1.jar Hello! NB: Dopo aver scritto tale riga andare a capo, altrimenti non funziona! 27 Sintassi di Jar jar [options] [manifest] destination input-file [input-files] Opzione c x file f v m o M u Descrizione Crea un nuovo archivio Estrae tutti i files se non specificato il parametro file Il secondo parametro è il file jar da creare Visualizza l output completo di creazione Include il file manifest da un file manifest pre-esistente Non comprime i files Non crea un file di manifest Agggiorna un jar esistente aggiungendo files o cambiando il manifest Informazione!! Un File.Jar è un file Zip a tutti gli effetti 28
EsempioMath.java Secondo Esempio (1/2) NB: il nome del file deve essere identico al nome della classe * Applicazione Java da linea di comando. * Stampa sen(π/3) @author Fondamenti di Informatica T-2 @version 1.0 02/2009 public class EsempioMath * Il main. * Calcola e stampa sen(π/3) public static void main(string args[]) double x = Math.sin(Math.PI/3); System.out.println(x); 29 Secondo Esempio (2/2) Compilazione javac EsempioMath.java Viene generato il file EsempioMath.class Esecuzione java EsempioMath Creare anche la documentazione ed il jar eseguibile 30
Terzo Esempio - Contatore (1/5) Contatore.java NB: il nome del file deve essere identico al nome della classe * Applicazione Java da linea di comando. * Realizza un contatore in avanti @author Fondamenti di Informatica T-2 @version 1.0 02/2009 public class Contatore private static int stato; * Azzera il contatore public static void reset() stato = 0; 31 Terzo Esempio - Contatore (2/5) Contatore.java * Incrementa il contatore public static void inc() stato++; * Fornisce lo stato del contatore public static int getvalue() return stato; 32
Terzo Esempio - Contatore (3/5) MyMain.java NB: il nome del file deve essere identico al nome della classe * Applicazione Java da linea di comando. * Test Contatore in avanti @author Fondamenti di Informatica T-2 @version 1.0 02/2009 public class MyMain * Il main. * Modifica e stampa il valore corrente del contatore public static void main(string[] args) Contatore.reset(); System.out.println(Contatore.getValue()); // 0 33 Terzo Esempio - Contatore (4/5) MyMain.java Contatore.inc(); System.out.println(Contatore.getValue()); // 1 Contatore.inc(); System.out.println(Contatore.getValue()); // 2 Contatore.reset(); System.out.println(Contatore.getValue()); // 0 34
Terzo Esempio - Contatore (5/5) Compilazione Basterebbe anche solo MyMain.java.. Il Compilatore è furbo e compila anche le classi riferite da MyMain.java!!! javac Contatore.java MyMain.java Vengono generati i file Contatore.class, MyMain.class Esecuzione java MyMain Creare anche la documentazione ed il jar eseguibile 35 Quarto Esempio - Fattoriale ricorsivo (1/4) FattRicorsivo.java NB: il nome del file deve essere identico al nome della classe * Applicazione Java da linea di comando. * Realizza un fattoriale ricorsivo @author Fondamenti di Informatica T-2 @version 1.0 02/2009 public class FattRicorsivo * Calcola il fattoriale in modo ricorsivo public static int fact(int n) if(n==0) return 1; else return n * fact(n-1); 36
Quarto Esempio - Fattoriale ricorsivo (2/4) MyMain.java NB: il nome del file deve essere identico al nome della classe * Applicazione Java da linea di comando. * Test fattoriale ricorsivo @author Fondamenti di Informatica T-2 @version 1.0 02/2009 public class MyMain * Il main. * Calcola e stampa fattoriali public static void main(string[] args) int fact1 = FattRicorsivo.fact(3); System.out.println(fact1); // 6 37 MyMain.java Quarto Esempio - Fattoriale ricorsivo (3/4) int fact2 = FattRicorsivo.fact(6); System.out.println(fact2); // 720 int fact3 = FattRicorsivo.fact(8); System.out.println(fact3); // 40320 38
Quarto Esempio - Fattoriale ricorsivo (4/4) Compilazione javac MyMain.java Vengono generati i file FattRicorsivo.class, MyMain.class Esecuzione java MyMain Creare anche la documentazione ed il jar eseguibile 39