Post on 13-Jul-2020
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
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
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
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
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
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
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
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
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
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).
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
…
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
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
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
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
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
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
}
}
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
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)
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