47
Laboratorio di Programmazione – Esercitazioni - Iuri Frosio - [email protected] 1 Info Architettura, JVM Installazione JDK (Windows, Linux) Hello world!

Info Architettura, JVM Installazione JDK (Windows, …homes.di.unimi.it/frosio/Lessons/AY2008-2009-LabProgr/...2008/10/13  · JVM Java Virtual Machine (JVM) → macchina astratta

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 1

InfoArchitettura JVM

Installazione JDK (Windows Linux)Hello world

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 2

InfoOrario Lunedigrave (830) 900 ndash 1230 Aula 309

In ogni esercitazione Ripasso teoria (14) esercizi (34)

Pagina web esercitazioni httphomesdsiunimiit~frosioLessonsAY2008-2009-LabProgrLaboratorioProgrammazione20082009html

wwwdsiunimiit rarr docenti rarr Frosio rarr Lessons

Orario calendario esercitazioni download slides (ripasso teoria) download esercizi (testo + soluzione) links (pagina web del corso wiki download JDK documentazione JDK prog documentazione prog) ricevimento

Ricevimento frosiodsiunimiit x appuntamento

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 3

InfoLinguaggio utilizzato Java 5

Per chi installa il package prog dal libro di testo (2^ ed) o dal sito del prof Boldi

JDK (Java Development Kit) 1515 (include JVM 1515) + documentazione

Per chi installa il package prog dal libro di testo (3^ ed) o dal sito del prof Pighizzini

JDK (Java Development Kit) 1607 (ultima release ndash include JVM 1607) + documentazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 4

Account aula 309 (Windows)

Nome utente iniziale del nome + iniziale del cognome + matricola Password milano

Cambiamento obbligatorio della password per tutti al primo logon non sono state date GPO per le restrizioni

Tutti gli account avranno a disposizione il disco Z dove poter salvare i propri file tale disco ha lrsquoimpostazione della gestione quota settata a

30MB I file salvati sul desktop e impostazioni lato utente non verranno salvati al

logoff

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 5

Architettura

Architettura calcolatore (Von Neumann)CPU RAM

Esecuzione di un programmaCompilatori

JVM

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 6

Architettura calcolatore (Von Neuman)

Componenti hardware principali ndash la memoria contiene i programmi da eseguire ed i dati da elaborare ndash il processore (CPU) esegue i programmi registrati nella memoria

elaborando i dati registrati nella memoria ndash le periferiche ndash il bus linea di connessione tra le diverse componenti

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 2

InfoOrario Lunedigrave (830) 900 ndash 1230 Aula 309

In ogni esercitazione Ripasso teoria (14) esercizi (34)

Pagina web esercitazioni httphomesdsiunimiit~frosioLessonsAY2008-2009-LabProgrLaboratorioProgrammazione20082009html

wwwdsiunimiit rarr docenti rarr Frosio rarr Lessons

Orario calendario esercitazioni download slides (ripasso teoria) download esercizi (testo + soluzione) links (pagina web del corso wiki download JDK documentazione JDK prog documentazione prog) ricevimento

Ricevimento frosiodsiunimiit x appuntamento

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 3

InfoLinguaggio utilizzato Java 5

Per chi installa il package prog dal libro di testo (2^ ed) o dal sito del prof Boldi

JDK (Java Development Kit) 1515 (include JVM 1515) + documentazione

Per chi installa il package prog dal libro di testo (3^ ed) o dal sito del prof Pighizzini

JDK (Java Development Kit) 1607 (ultima release ndash include JVM 1607) + documentazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 4

Account aula 309 (Windows)

Nome utente iniziale del nome + iniziale del cognome + matricola Password milano

Cambiamento obbligatorio della password per tutti al primo logon non sono state date GPO per le restrizioni

Tutti gli account avranno a disposizione il disco Z dove poter salvare i propri file tale disco ha lrsquoimpostazione della gestione quota settata a

30MB I file salvati sul desktop e impostazioni lato utente non verranno salvati al

logoff

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 5

Architettura

Architettura calcolatore (Von Neumann)CPU RAM

Esecuzione di un programmaCompilatori

JVM

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 6

Architettura calcolatore (Von Neuman)

Componenti hardware principali ndash la memoria contiene i programmi da eseguire ed i dati da elaborare ndash il processore (CPU) esegue i programmi registrati nella memoria

elaborando i dati registrati nella memoria ndash le periferiche ndash il bus linea di connessione tra le diverse componenti

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 3

InfoLinguaggio utilizzato Java 5

Per chi installa il package prog dal libro di testo (2^ ed) o dal sito del prof Boldi

JDK (Java Development Kit) 1515 (include JVM 1515) + documentazione

Per chi installa il package prog dal libro di testo (3^ ed) o dal sito del prof Pighizzini

JDK (Java Development Kit) 1607 (ultima release ndash include JVM 1607) + documentazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 4

Account aula 309 (Windows)

Nome utente iniziale del nome + iniziale del cognome + matricola Password milano

Cambiamento obbligatorio della password per tutti al primo logon non sono state date GPO per le restrizioni

Tutti gli account avranno a disposizione il disco Z dove poter salvare i propri file tale disco ha lrsquoimpostazione della gestione quota settata a

30MB I file salvati sul desktop e impostazioni lato utente non verranno salvati al

logoff

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 5

Architettura

Architettura calcolatore (Von Neumann)CPU RAM

Esecuzione di un programmaCompilatori

JVM

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 6

Architettura calcolatore (Von Neuman)

Componenti hardware principali ndash la memoria contiene i programmi da eseguire ed i dati da elaborare ndash il processore (CPU) esegue i programmi registrati nella memoria

elaborando i dati registrati nella memoria ndash le periferiche ndash il bus linea di connessione tra le diverse componenti

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 4

Account aula 309 (Windows)

Nome utente iniziale del nome + iniziale del cognome + matricola Password milano

Cambiamento obbligatorio della password per tutti al primo logon non sono state date GPO per le restrizioni

Tutti gli account avranno a disposizione il disco Z dove poter salvare i propri file tale disco ha lrsquoimpostazione della gestione quota settata a

30MB I file salvati sul desktop e impostazioni lato utente non verranno salvati al

logoff

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 5

Architettura

Architettura calcolatore (Von Neumann)CPU RAM

Esecuzione di un programmaCompilatori

JVM

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 6

Architettura calcolatore (Von Neuman)

Componenti hardware principali ndash la memoria contiene i programmi da eseguire ed i dati da elaborare ndash il processore (CPU) esegue i programmi registrati nella memoria

elaborando i dati registrati nella memoria ndash le periferiche ndash il bus linea di connessione tra le diverse componenti

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 5

Architettura

Architettura calcolatore (Von Neumann)CPU RAM

Esecuzione di un programmaCompilatori

JVM

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 6

Architettura calcolatore (Von Neuman)

Componenti hardware principali ndash la memoria contiene i programmi da eseguire ed i dati da elaborare ndash il processore (CPU) esegue i programmi registrati nella memoria

elaborando i dati registrati nella memoria ndash le periferiche ndash il bus linea di connessione tra le diverse componenti

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 6

Architettura calcolatore (Von Neuman)

Componenti hardware principali ndash la memoria contiene i programmi da eseguire ed i dati da elaborare ndash il processore (CPU) esegue i programmi registrati nella memoria

elaborando i dati registrati nella memoria ndash le periferiche ndash il bus linea di connessione tra le diverse componenti

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

processore

memoria

interfaccia alle periferiche

bus

di s

iste

ma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 7

Architettura calcolatore (Von Neuman)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

CPUMemoriacentrale

Memoriedi massa

MouseTastieraMonitor

BUSInput Output InputOutput (IO)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 8

Processore Il processore o CPU -Central Processing Unit- egrave lrsquounitagrave di

elaborazione centrale del computer Controlla le funzioni del computer esegue le operazioni aritmetico-

logiche ed elabora i dati E` composto da

ndash datapath un insieme di circuiti in grado di operare e manipolare i dati

ndash controller un insieme di circuiti in grado di interpretare un programma e fare eseguire alle altre componenti del calcolatore le istruzioni del programma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 9

Processore Ogni modello di microprocessore egrave in grado di riconoscere solo

programmi scritti nel proprio linguaggio macchina Ogni modello di microprocessore ha un proprio linguaggio macchina

diverso da quello di altri processori Il linguaggio macchina contiene tutte e sole le istruzioni che possono

essere eseguite direttamente dal microprocessore Ogni istruzione del linguaggio macchina viene eseguita dal

microprocessore svolgendo una serie di operazioni elementari Il numero di operazioni elementari necessario per completare

lrsquoesecuzione di unrsquoistruzione in linguaggio macchina egrave dellrsquoordine di 7-10

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 10

Processore Lrsquoesecuzione di un programma richiede caricamento del programma

dal disco alla memoria centrale codice macchina pronto per lrsquoesecuzione

per ogni istruzione del programma esecuzione di tre tipi di operazionindash Fetch (il processore preleva dalla memoria lrsquoistruzione da eseguire

e la carica al suo interno)ndash Decode (il processore decodifica lrsquoistruzione da eseguire)ndash Execute (il processore esegue le operazioni corrispondenti

allrsquoistruzione)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 11

Processore Registri Sono la memoria interna al processore Usati come ldquoappoggiordquo durante lrsquoesecuzione delle istruzioni per

trasferire i dati dallaalla memoria per salvare i risultati parziali delle operazioni artimeticologiche

Sono solitamente poche decine (32-64)

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registro

registro

registro

registro

processorememoria

interfaccia alle periferiche

bus

di s

iste

ma

registroregistro

registroregistro

registroregistro

registroregistro

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 12

Memoria centrale Organizzazione in celle di memoria Ogni dato istruzione egrave identificabile per mezzo di un indirizzo Memoria volatile

ndash Perde il suo contenuto se non viene alimentata elettricamentendash Genericamente indicata con il termine RAM Random Access Memory percheacute

il tempo di accesso ad una cella di memoria non dipende dalla sua posizione fisica (e` lo stesso per tutte le celle)

Programmi applicativi e dati

Zona riservata al sistema operativo

Area libera

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 13

Esecuzione di un programma Caricamento programma e dati in memoria Fetch 1^ istruzione in linguaggio macchina (preleva dalla memoria

lrsquoistruzione e la porta al procesore) decode (il processore decodifica lrsquoistruzione da eseguire) execute (il processore esegue le operazioni corrispondenti allrsquoistruzione)

2^ istruzione 3^ istruzione Quando il programma termina puograve essere eliminato dalla memoria

Problema come generare la lista di istruzioni in linguaggio assembly

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 14

Compilatori

Fino agli anni 50 i programmatori scrivevano codice in linguaggio Assembly rarr codice specifico per la macchina utilizzata cambiare processore significa cambiare codice

Per mezzo dei compilatori egrave possibile scrivere codice ad alto livello che viene automaticamente tradotto in linguaggio macchina dal compilatore

Esportando codice ad alto livello e compilandolo con diversi compilatori egrave possibile generare codice per macchine diverse

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 15

Compilatori

Codice Pascal (alto livello)

Codice macchina Linux Codice macchina Windows Codice macchina Mac

Compilatore Linux Compilatore Windows Compilatore Mac

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 16

Compilatori A differenza dei compilatori che traducono ed eseguono un intero

programma gli interpreti traducono ed eseguono immediatamente ogni istruzione

Un interprete realizza in pratica una ldquomacchina virtualerdquo pronta ad eseguire ogni istruzione che viene digitata dal programmatore letta da un file contenente una serie di istruzioni

E piugrave efficiente utilizzare un compilatore rispetto ad un interprete quando un programma viene eseguito piugrave volte in quanto la traduzione viene effettuata una volta per tutte

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 17

Compilatori

Compilatore

Programma oggetto

Linker

Eseguibile

Esecutore

LibrerieErrori del linker

Programma sorgente (alto livello)

Output ed errori di esecuzione

Errori di compilazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 18

JVM

Java Virtual Machine (JVM) rarr macchina astratta in grado di eseguire un codice di basso livello (simile a un codice macchina) chiamato bytecodeE un interprete

Codice di alto livello rarr file javaByte code rarr file class

HelloWorldjava

Compilatore (javac)

HelloWorldclass

Interprete (java)

Esecutore (PC)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 19

JVMLa compilazione (javac) egrave indipendente dalla macchina reale di cui si dispone il file class generato egrave lo stesso su una macchina Windows Linux

Linterprete (java) dipende dalla specifica macchine

Si ottiene oltre alla portabilitagrave del codice sorgente ad alto livello (file java) anche la portabilitagrave del codice compilato (file class)

Sono disponibili librerie (package) in bytecode che possono essere utilizzate da qualunque macchina

Durante la compilazione il compilatore accede alle librerie per verificare luso corretto delle risorse disponibili ndash non include nel bytecode generato il codice delle librerie

Durante lesecuzione la JVM carica il bytecode del programma e quello delle librerie che vengono utilizzate

Ad esempio applet java nei browser rarr il browser contiene un jvm che interpreta il bytecode e lo esegue indipendentemente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 20

JVMCodice java (java)

Macchina Linux Macchina Windows Macchina Mac

Interprete Linux Interprete Windows Interprete Mac

Compilatore (javac)

Bytecode

Pacakges

Indipendente dalla piattaformaDipendente dalla piattaforma

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 21

Cosa installarePer chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA

Addison-Wesley Pearson Education Italia II edizione

JDK (ver 15) httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 50 English JDK Programmer guides 50 English

Package prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 15) httpboldidsiunimiitCorsiProgrMat2008matagg rarr Materiale didattico aggiuntivo [Altrimenti disponibile nel CD distribuito con il libro di testo]

Per chi utilizza G Pighizzini M Ferrari Dai fondamenti agli oggetti Corso di programmazione JAVA Addison-Wesley Pearson Education Italia III edizione

JDK (ver 16) httpjavasuncomproductsarchivej2se6u6indexhtml [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione API Programmer guide httpjavasuncomjavasereferenceapijsp rarr Core API Docs 60 English JDK Programmer guides 60 English

Package prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Documentazione prog (ver 16) httppighizzinidicounimiitjblibrerie [Altrimenti disponibile nel CD distribuito con il libro di testo]

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 22

Installazione JDK (Windows)

- Dal sito web

httpjavacomit

Download gratuito di Java rarr verifica versione rarr tutti i download di Java rarr altre versioni di java rarr Versioni precedenti (Archivio download prodotti tecnologia Java) rarr JDKJRE 50 Update 15 rarr httpjavasuncomproductsarchivej2se50_15indexhtml rarr Download JDK rarr Windows multilanguage rarr Windows offline installation (jdk-1_5_0_03-windows-i586-pexe) rarr Esegui

- Dal CD del libro (II edizione) jdk-1_5_0_03-windows-i586-p-exe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 23

Installazione JDK (Windows)

- E probabile che sulla macchina sia giagrave installata una versione piugrave recente di Java (versione 6 aggiornamento7) ndash nel corso verragrave comunque sviluppato codice utilizzando Java 5

- Per linstallazione su macchina Windows egrave necessario avere i diritti di amministratore della macchina

- E consigliabile installare tutte le componenti del pacchetto di installazione

- Una volta terminata linstallazione (ver 5) i programmi si trovano in CProgrammiJavajdk150_15

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 24

Documentazione online

Documentazione on line

httpjavasuncomjavasereferenceapijsp

- Core API Docs 50 English (documentazione API)

- JDK Programmer guides 50 English (guida per il programmatore)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 25

Installazione documentazione

Download documentazione solo dal sito (non disponibile nel libro di testo)

httpjavasuncomjavasedownloadsindex_jdk5jsp

J2SE 50 Documentation rarr Download rarr English rarr jdk-1_5_0-doczip rarr salvare in CProgrammiJavajdk150_15 rarr ldquoEstrai quirdquo (WinRar) rarr Crea automaticamente la cartella ldquodocsrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 26

Cosa abbiamo installato

CProgrammiJavajdk150_15docs

CProgrammiJavajdk150_15docsindexhtml rarr Pagina principale della guida Java (consigliabile creare un collegamento sul desktop)

CProgrammiJavajdk150_15docsapiindexhtml rarr Guida per le APIs Java (consigliabile creare un collegamento sul desktop)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 27

Cosa abbiamo installato

CProgrammiJavajdk150_15bin

Javacexe rarr CompilatoreJavaexe rarr Java Virtual MachineJavadocexe rarr Strumento per la generazione automatica della documentazione dei programmi

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 28

Prompt di DOSNon essendo prevista uninterfaccia grafica egrave necessario utilizzare linterprete dei comandi di Windows (prompt MS-DOS)

Per lavvio del prompt MS-DOS Start rarr Programmi rarr Accessori rarr Prompt dei comandi

Comandi utili

- dir rarr lista dei file directory presenti nella directory corrente- cd ltnome directorygt rarr cambia la directory corrente- cd rarr scende di un livello- cd rarr scende alla radice

Per andare nella directory di Java quindi

- cd CProgrammiJavajdk150_15bin

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 29

Prompt di DOS

Altri comandi utili

- mkdir ltnome directorygt rarr crea una nuova directory- copy ltfile1gt ltfile2gt rarr copia di file- del ltnome filegt rarr elimina file- path rarr visualizza il valore della variabile di sistema path- set rarr visualizza la variabili di sistema e i loro valori

Help delle funzioni help set help del

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 30

Variabile di sistema PATH- La variabile di sistema PATH indica al prompt di dos le directory nelle quali cercare i file eseguibili

- le directory sono elencate separate da ldquordquo

- Cosa succede se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe non viene eseguito dal momento che non si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin non si trova nella variabile PATH

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 31

Variabile di sistema PATHPer aggiornare la variabile di sistema PATH

- Windows NT 2000 XP Avvio rarr Impostazioni rarr Pannello di controllo rarr Sistema (2 click) rarr Ambiente (NT) o Avanzate (XP 2000) rarr Variabili dambiente rarr Variabili utente oppure variabili di sistema rarr Selezionare PATH rarr Aggiungere il percorso con gli eseguibili Java (CProgrammiJavajdk150_15bin) rarr OK o applica

Attne E importante che nella variabile PATH non sia presente unaltra directory con unaltra versione Java (altrimenti quale Javacexe sceglie il prompt di dos rarr la prima che trova)

- Winows ME 98 rarr G Pighizzini M Ferrari ldquoDai fondamenti agli oggetti ndash Corso di programmazione Javardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 32

Variabile di sistema PATH

Cosa succede ora se

cd CProgrammiJavajdk150_15bincd Javac

- Javacexe viene eseguito dal momento che si trova in CProgrammiJavajdk150_15 e che CProgrammiJavajdk150_15bin si trova nella variabile PATH

E ora possibile scrivere unapplicazione Java in qualunque directory e ad esempio compilarla senza cambiare directory (lOS identifica automaticamente la posizione del compilatore della Java Virtual Machine )

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 33

Prima esecuzione

I File sorgente di Java sono file in formato testuale rarr Utilizzare un editor di testo (Blocco Note Wordpad ) per la creazione ed il salvataggio dei file Java

Dove si trova ldquoBlocco Noterdquo (Notepad) rarr Avvio rarr Programmi rarr Accessori rarr Blocco Note

Attne Al momento del salvataggio del file Blocco Note aggiunge automaticamente lestensione ldquotxtrdquo al file salvato Per essere accettati dal compilatore i file devono avere lestensione ldquojavardquo Per evitare che Blocco Note aggiunga lestensione ldquotxtrdquo egrave necessario specificare tra apici il nome del file al momento del salvataggio

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 34

Prima esecuzioneAprire ldquoBlocco NoterdquoPrimo programma Java

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Salvare il programma con il nome ldquoHelloWorldjavardquo nella directory prescelta ad esempio ldquoE_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjavardquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 35

Prima esecuzione

Per la compilazione Javac ltnomefilejavagt

Ad esempio javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Errori comuni

Nome file errato rarr il compilatore non trova il fileEstensione java mancante rarr il compilatore interpreta la stringa corrispondente al nome del file come un parametro

Se proviamo a compilare rarr viene generato un file class nella stessa directory in cui si trova il file java

Il file class egrave il file che puograve essere eseguito dalla Java Virtual Machine

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 36

Prima esecuzioneAltri errori individuati dal compilatore

Proviamo a modificare il codice di HelloWorldjava inserendo un errore sintattico ad esempio

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(Hello world) Qui manca un

Salviamo il file ldquojavardquo in E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 37

Prima esecuzione

Compiliamo javac E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorldHelloWorldjava

Il compilatore segnala lerrore di sintassi

In questo caso il bytecode (file class) non viene creato

Nota per lhelp del compilatore digitare ldquojava -hrdquo al prompt di dos

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 38

Prima esecuzionePer lesecuzione dobbiamo utilizzare la Java Virtual Machine

La sintassi per lutilizzo egraveJava ltfile class senza estensionegt

Quindi per eseguire la HelloWorldclass

Cambiamo la directory corrente per andare nella directory in cui egrave contenuto il file classcd E_Didattica_AA20082009_ProgrammazioneCodice000_HelloWorld (se non si vuole cambiare la directory si veda lopzione -classpath di Javaexe)

Invochiamo la Java Virtual MachineJava HelloWorld

Come risultato otteniamo a schermo la scritta ldquoHello Worldrdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 39

Installazione packageIn unapplicazione Java vengono in genere utilizzate

- Classi fornite con lambiente di sviluppo (API Application Programmer Interface)- Classi sviluppate in precedenza dal programmatore o da altri- Classi che compongono il programma

Le classi sono organizzate in librerie (in Java chiamate package)

Es HelloWorld utilizzate il package javalang System egrave una classe di tale package rarr egrave fornita con lambiente di sviluppo Java quindi il compilatore sa giagrave dove trovarla

Analogamente il compilatore trova tutte le classi che si trovano nella stessa directory della classe che si compila

Per package diversi da javalang file class in una directory diversa da quella di compilazione rarr necessaria limportazione

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 40

Installazione package

Per utilizzare un package

import ltnome della classegt

Queste sono le uniche istruzioni che possono (e devono) essere messe prima del corpo della

classe

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 41

Installazione packageRiscriviamo Hello world esplicitando direttamente limportazione del package javalang

Direttiva dimportazione per la casse System import javalangSystem

Hello world application class HelloWorld

Main methodpublic static void main(String [] args)

Systemoutprintln(ldquoHello worldrdquo)

Compilare (javac HelloWorldjava) eseguire (java HelloWorld)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 42

Installazione packageCome fare per utilizzare package diversi da javalang Vogliamo ad esempio utilizzare le classi ConsoleInputManager e ConsoleOutputManager del package progio rarr Le classi vanno importate esplicitamente Scriviamo una nuova applicazione che utilizzi queste classi per la gestione dellinput output

Direttive di importazione import progioConsoleOutputManagerimport progioConsoleInputManager

class GoodMorning

public static void main (String [] args)

ConsoleInputManager in = new ConsoleInputManager()ConsoleOutputManager out = new ConsoleOutputManager()String Name = inreadLine(ldquoWhats your name ldquo)outprintln(ldquoGoodMorning ldquo + Name + ldquordquo)

Proviamo a compilare

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 43

Installazione package

javac GoodMorningjava

GoodMorningjava2 class or interface expectedImport progioConsoleOutputManager^GoodMorningjava3 class or interface expectedImport progioConsoleInputManager^2 errors

Il compilatore segnala 2 errori di importazione relativi alle classi ConsoleOutputManager e ConsoleImputManagerLerrore egrave dovuto al fatto che il compilatore non trova ConsoleOutputManagerclass e ConsoleImputManagerclass nella stesa directory di GoodMorningjava e non sa dove cercare il package progio (le due classi sono contenute allinterno del package)

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 44

Installazione package

La direttiva di importazione indica il compilatore e alla Java Virtual Machine dove trovare le classi utilizzate nel programma

progioConsoleInputManager identifica una classe memorizzata in progioConsoleInputManagerclass (viene quindi dato un indirizzamento relativo)

Ma quale egrave lindirizzo di base per limportazione dei package rarr Java utilizza la variabile di sistema CLASSPATH

Nella variabile sono memorizzate le directory i base nelle quali lutente salva le proprie librerie (separate da ldquordquo in Windows separate da ldquordquo in Linux) La variabile egrave dunque da aggiornare per indicare a Java la directory che utilizziamo per le librerie

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 45

Installazione package

Procedura per Java 6

Per prima cosa dobbiamo installare il package prog scaricare il file prog-3edjar dal sito web di Pighizzini estrarre prog-3edjar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 46

Installazione package

Procedura per Java 5

Per prima cosa dobbiamo installare il package prog scaricare il file prog-15jar dal sito web di Boldi estrarre prog-15jar (utilizzando WinZip in Windows tar in Linux) in E_Didattica_AA20082009_Programmazione viene create una directory E_Didattica_AA20082009_Programmazioneprog nella quale sono presenti due sottodirectory io e utili Dobbiamo aggiornare la CLASSPATH in Windows per includere E_Didattica_AA20082009_Programmazione tra le directory in cui cercare i package

Per aggiornare la CLASSPATH (Windows XP)Avvio rarr Impostazioni rarr Pannello di Controllo rarr Sistema rarr Avanzate rarr Variabili di AmbienteLa variabile CLASSPATH puograve comparire oppure non comparire tra le variabili giagrave presenti nel caso non compaia egrave necessario creare una nuova variabile dambiente con il nome CLASSPATH altrimenti egrave sufficiente modificare la CLASSPATH includendo ldquoE_Didattica_AA20082009_Programmazionerdquo

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47

Laboratorio di Programmazione ndash Esercitazioni - Iuri Frosio - frosiodsiunimiit 47

Installazione package

Proviamo ora a compilare

gt javac GoodMorningjava

e ad eseguire

gt java GoodMorning

E ora Linux

  • Pagina 1
  • Pagina 2
  • Pagina 3
  • Pagina 4
  • Pagina 5
  • Pagina 6
  • Pagina 7
  • Pagina 8
  • Pagina 9
  • Pagina 10
  • Pagina 11
  • Pagina 12
  • Pagina 13
  • Pagina 14
  • Pagina 15
  • Pagina 16
  • Pagina 17
  • Pagina 18
  • Pagina 19
  • Pagina 20
  • Pagina 21
  • Pagina 22
  • Pagina 23
  • Pagina 24
  • Pagina 25
  • Pagina 26
  • Pagina 27
  • Pagina 28
  • Pagina 29
  • Pagina 30
  • Pagina 31
  • Pagina 32
  • Pagina 33
  • Pagina 34
  • Pagina 35
  • Pagina 36
  • Pagina 37
  • Pagina 38
  • Pagina 39
  • Pagina 40
  • Pagina 41
  • Pagina 42
  • Pagina 43
  • Pagina 44
  • Pagina 45
  • Pagina 46
  • Pagina 47