Fondamenti di Informatica T2 Modulo...

20
Università di Bologna A.A. 2008/2009 Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 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

Transcript of Fondamenti di Informatica T2 Modulo...

Page 1: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

Fondamenti di Informatica T2

Modulo 2

Università degli Studi di Bologna

Facoltà di Ingegneria

Corso di Laurea in Ingegneria Informatica

Anno accademico 2008/2009

2

Agenda

• PASSO 0

Informazioni di servizio per i laboratori

• PASSO 1Installazione del JDK e impostazione del PATH

• PASSO 2

Presentazione del tool da linea di comando

Page 2: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

3

Agenda

• PASSO 0Informazioni di servizio per i laboratori

• PASSO 1Installazione del JDK e impostazione del PATH

• PASSO 2

Presentazione del tool da linea di comando

4

Credenziali

Come si accede ai PC dei Laboratori??

• USERNAME: x0 seguito dal numero di matricola (senza gli zeri iniziali)

• PASSWORD: pin del badge

4

Page 3: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

5

Configurazione del Proxy (1/2)

Mozilla Firefox

Strumenti Opzioni Generale Impostazioni connessione

5

6

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

Page 4: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

7

Agenda

• PASSO 0Informazioni di servizio per i laboratori

• PASSO 1Installazione del JDK e impostazione del PATH

• PASSO 2

Presentazione del tool da linea di comando

8

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

Page 5: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

9

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

10

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

Page 6: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

11

Impostazione del Path (2/6)

Windows Vista/7

• Start (Impostazioni) Pannello di Controllo Sistema

• Impostazioni Avanzate

11

12

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

Page 7: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

13

Impostazione del Path (4/6)

• Vediamo se siamo stati bravi…

• Esecuzione di javac

13

Siamo Stati Bravi!!!

NON Siamo Stati Bravi!

14

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):

c:\<path_jdk>\bin

es:

PATH C:\WINDOWS;c:\Programmi\jdk160\bin

• Per rendere attive le modifiche riavviare la macchina

14

Page 8: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

15

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

16

Agenda

• PASSO 0Informazioni di servizio per i laboratori

• PASSO 1Installazione del JDK e impostazione del PATH

• PASSO 2Presentazione del tool da linea di comando

Page 9: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

17

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

18

Primo Esempio - Implementazione1. Creiamo un file con Blocco Note nominandolo

Esempio1.java

18

/**

* 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.

* Stampa l'argomento passato da linea di comando

*/

public static void main(String args[])

{

System.out.println(args[0]);

}

}

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 “Tuttii 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

Page 10: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

19

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

19

Tool di base:http://java.sun.com/javase/6/docs/technotes/tools/index.html

20

Sintassi di Javacjavac [options] [sourcefiles]

20

Opzione Descrizione

-help Visualizza l’help

-verbose Visualizza l’output completo di compilazione

-classpath classpath Imposta il classpath, se non impostato recupera quellodi default del sistema.

-sourcepath sourcepath Permette di specificare la directory in cui cercare isorgenti (.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 Avvisa ad ogni utilizzo di metodi deprecati

-nowrite Controlla solo la sintassi senza compilare

-source [version] Permette di compilare per una specifica versione di java (Es. 1.5).

Page 11: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

21

Commenti Javadoc

• Un commento per essere interpretato da javadoc deveiniziare con /**

• Un commento javadoc:

– può essere associato a classi, metodi e campi

– è composto da una descrizione e da una serie di “tags” opzionalipreceduti da @

21

/**

* Il main.

* Stampa l'argomento passato da linea di comando

* @author Fondamenti di Informatica T2

*/

22

Commenti Javadoc - Tags

22

Opzione Descrizione

@author [author] Per indicare l’autore (Attenzione: è necessario indicare –author da linea di comando affinchè questo tag venga considerato. V. slide successive)

@deprecated [description]

Indica che il metodo/classe descritto è stato rimpiazzato e ne è sconsigliato l’utilizzo. Può seguire una descrizione su cosa utilizzare in alternativa.

@param [name][description]

Descrive un parametro in ingresso di un metodo. (Es. @param args Argomenti passati in ingresso)

@returns [description] Parametro di ritorno

Page 12: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

23

Sintassi di Javadocjavadoc [options] [pakagenames] [sourcefiles]

23

Opzione Descrizione

-help Visualizza l’help

-d directory Specifica una directory in cui creare la documentazione, il default è la directory corrente.

-version Include i paragrafi @version

-author Include i paragrafi @author

Esistono molte altre opzioni, per i dettagli si rimanda all’help

specificojavadoc –help

24

Primo Esempio

24

Bytecode

Sorgente

Documentazione prodotta

Page 13: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

25

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

26

Sintassi di Javajava [options] class/jar

26

Opzione Descrizione

-help Visualizza l’help

-jar Per eseguire un file jar (Eseguibile)

-classpath Imposta il classpath, se non impostato recupera quellodi default del sistema.

-verbose Visualizza l’output completo

-version Visualizza la versione di java attualmente installata

Page 14: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

27

Primo Esempio - Creazione jar5. 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!

27

NB: Dopo aver scritto tale riga andare a capo, altrimenti non funziona!

28

Sintassi di Jarjar [options] [manifest] destination input-file

[input-files]

28

Opzione Descrizione

c Crea un nuovo archivio

x file Estrae tutti i files se non specificato il parametro file

f Il secondo parametro è il file jar da creare

v Visualizza l’output completo di creazione

m Include il file manifest da un file manifest pre-esistente

o Non comprime i files

M Non crea un file di manifest

u Agggiorna un jar esistente aggiungendo files o cambiando il manifest

Informazione!! Un File .Jar è un file Zip a tutti gli effetti

Page 15: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

29

Secondo Esempio (1/2)EsempioMath.java

29

/**

* 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);

}

}

NB: il nome del file deve essere identico al nome della classe

30

Secondo Esempio (2/2)Compilazione

javac EsempioMath.java

Viene generato il file EsempioMath.class

Esecuzione

java EsempioMath

30

Creare anche la documentazione ed il

jar eseguibile

Page 16: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

31

Terzo Esempio - Contatore (1/5)

31

Contatore.java

/**

* 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;

}

NB: il nome del file deve essere identico al nome della classe

32

Terzo Esempio - Contatore (2/5)

32

/**

* Incrementa il contatore

*/

public static void inc()

{

stato++;

}

/**

* Fornisce lo stato del contatore

*/

public static int getValue()

{

return stato;

}

}

Contatore.java

Page 17: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

33

Terzo Esempio - Contatore (3/5)MyMain.java

/**

* 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

NB: il nome del file deve essere identico al nome della classe

34

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

}

}

Page 18: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

35

Terzo Esempio - Contatore (5/5)Compilazione

javac Contatore.java MyMain.java

Vengono generati i file Contatore.class, MyMain.class

Esecuzione

java MyMain

35

Creare anche la documentazione ed il

jar eseguibile

Basterebbe anche solo MyMain.java.. Il Compilatore è furbo e compila anche le classi riferite da MyMain.java!!!

36

Quarto Esempio - Fattorialericorsivo (1/4)

36

FattRicorsivo.java

/**

* 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);

}

}

NB: il nome del file deve essere identico al nome della classe

Page 19: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

37

MyMain.java

/**

* 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

Quarto Esempio - Fattorialericorsivo (2/4)

NB: il nome del file deve essere identico al nome della classe

38

MyMain.java

int fact2 = FattRicorsivo.fact(6);

System.out.println(fact2); // 720

int fact3 = FattRicorsivo.fact(8);

System.out.println(fact3); // 40320

}

}

Quarto Esempio - Fattorialericorsivo (3/4)

Page 20: Fondamenti di Informatica T2 Modulo 2lia.deis.unibo.it/Courses/FondT2-0809-INF/lab/slides-x2/00.Lab0-Inst… · Fondamenti di Informatica T2 Modulo 2 Università degli Studi di Bologna

Università di Bologna – A.A. 2008/2009

39

Compilazione

javac MyMain.java

Vengono generati i file FattRicorsivo.class, MyMain.class

Esecuzione

java MyMain

39

Quarto Esempio - Fattorialericorsivo (4/4)

Creare anche la documentazione ed il

jar eseguibile