Fondamenti di Informatica
Prof. Alfredo Cuzzocrea
University of Trieste
Introduzione a Java/1
Credits to: Dr. L. Rigutini - UniSI
JAVA
Il linguaggio di programmazione JAVA
¾
Nel 1991 un gruppo di Sun MicroSystems, guidato da James
Gosling e Patrick Naughton, progettò un linguaggio chiamato in
codice “Green”, per l’utilizzo in apparecchi di consumo:
¾
¾
Il linguaggio era stato progettato per essere SEMPLICE e
NEUTRALE rispetto all’architetture, in modo da operare su
hardware diversi:
¾
¾
Elettrodomestici intelligenti, telefoni mobili, ecc….
Non si trovò mai un cliente per questa tecnologia
Nel 1994, la squadra si rese conto che un’altra area poteva sfruttare
le proprietà di “Green”: il filone client/server
¾
¾
¾
Indipendenza dall’architettura
Esecuzione in tempo reale
Affidabilità e sicurezza
Nasce JAVA
¾
Nel 1995 fu presentato dalla Sun il browser HotJava che aveva una
caratteristica unica:
¾
Poteva scaricare piccoli programmi, chiamati applet , dal web ed
eseguirli sulla macchina client con un elevato grado di sicurezza
¾
Gli applet scritti nel linguaggio che adesso si chiama Java,
permettevano agli sviluppatori Web di predisporre una serie di
animazioni e integrazioni che potevano migliorare molto le
potenzialità della pagina
¾
Dal 1996, sia Netscape (allora molto diffuso) che Explorer
supportano Java
La crescita di Java
¾
Da allora Java è cresciuto a ritmo fenomenale:
¾
I programmatori lo hanno adottato per la sua elevata semplicità rispetto
al rivale/progenitore (il C++)
¾
Inoltre la Sun rilasciava con Java, una libreria enormemente ricca
(JDK – Java Development Kit) che forniva agli sviluppatori una
innumerevole quantità di classi per i problemi più diversi
¾
Nel 1998 la Sun rilasciò la nuova versione del linguaggio, chiamata
Java2, e la sua libreria ampliata con nuove classi:
¾
La nuova release aveva due versioni, la micro-edition(J2ME), pensata
per lo sviluppo su piccoli dispositivi integrati (gli anni del boom del
cellulare) e la enterprise edition (J2EE), pensata per le workstation
JAVA ed internet
¾
Poiché Java era stato pensato per Internet, ha due qualità che lo
rendono molto adatto per i principianti:
¾
¾
¾
Sicurezza – le applet si avviano automaticamente una volta scaricate dal
browser, quindi è importante che esse siano intrinsecamente sicuri
Trasferibilità – lo stesso programma Java è eseguibile su qualsiasi
piattaforma (Windows, Unix-like o Machintosh)
Quando si visita un sito, il server web non ha idea di quale computer
state utilizzando, ma restituisce semplicemente il codice trasferibile
che è stato generato dal compilatore Java
¾
la macchina virtuale Java sul computer client si occuperà di eseguire
questo codice trasferibile
Tipi di programmi Java
¾
Applets
¾
¾
¾
¾
Servlets e JSP
¾
¾
¾
Piccoli programmi Java utilizzati all'interno di pagine HTML
Vengono scaricate insieme alla pagina HTML ed eseguite lato client (dal
browser o da un applet viewer)
Normalmente i browser incorporano una JVM con cui eseguono l'applet
Sono programmi Java che risiedono sul server Web e vengono invocati
dalle pagine HTML
Vengono eseguiti lato server solitamente per la generazione di pagine
Web dinamiche (accesso a Database, risposta a dati inviati o operazioni
effettuate dall’utente)
Applicazioni
¾
Sono normali programmi eseguiti su una JVM (lanciata esplicitamente
da riga di comando)
Scrivere un programma in Java
¾
Una caratteristica che ha reso popolare il Java è quella di essere
indipendente dal S.O. in cui un programma è compilato. Ma come è
resa possibile questa cosa?
¾
Il compilatore Java produce un codice che non è il codice binario
finale, ma un codice binario intermedio chiamato bytecode
(indipendente dall’architettura)
¾
Questo codice intermedio è interpretato da una “macchina virtuale”
che lo traduce in istruzioni macchina
¾
¾
la Java Virtual Machine (JVM)
La JVM ha bisogno di conoscere il SO su cui sta girando. La Sun
mette a disposizione JVM per tutti i sistemi operativi:
¾
Windows, Linux, Unix, Mac ecc…
Scrivere un programma in Java
¾
In definitiva, scrivere un programma Java vuole dire creare un file di
testo contenente del codice Java:
¾
un file per ogni classe (ossia astrazione dell’oggetto)
¾
Il file così creato ha estensione .java e deve essere passato al
compilatore Java:
javac xxx.java Î xxx.class
¾
Questo software crea un file .class con lo stesso nome
dell’originario, che contiene il bytecode per la JVM
java xxx Î esecuzione del main della classe xxx.class
Es
HelloWorld.java
class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello World!”);
}
}
bytecode
01010101
11010101
11101001 HelloWorld.class
10101011
11100101
Java
Compiler
javac
¾
javac e java sono forniti con la
distribuzione Java (JDK)
java
JVM
javac.exe e java.exe
¾
Forniti con la distribuzione Java della SUN:
¾
¾
JDK
Dipendono dall’architettura su cui si va ad operare:
¾
È necessario utilizzare il JDK per Windows se si usa Windows,
ugualmente per Linux, Mac ecc…
¾
Sono applicazioni lanciate dall’utente dalla shell dei comandi oppure
dall’ambiente di sviluppo grafico utilizzato
¾
Devono essere nel path di ricerca del S.O. :
Es. in windows:
path %path%;C:\Programmi\Java\jdk1.5.0_02;C:\Programmi\Java\
jdk1.5.0_02\bin;
set JAVAHOME=C:\Programmi\Java\jdk1.5.0_02
javac.exe
java.exe
CLASSPATH
¾
Quando creiamo una classe Java (nell’esempio precedente ‘prova’),
affinché sia utilizzabile è necessario che il nome del file sia lo stesso
del nome della classe:
¾
¾
¾
La classe prova va quindi salvata in un file prova.java e compilata nel
file prova.class
Il compilatore javac si occupa di generare il file .class con il nome del
file .java che gli viene fornito come parametro di ingresso
Il file .class deve poi essere nel classpath della macchina virtuale,
altrimenti non sarà trovato. E’ possibile specificare il classpath come
opzione diretta alla JVM:
java.exe –classpath [PATH1;PATH2;…;PATHn] file.class
¾
In alternativa si può definire una variabile di sistema CLASSPATH
da cui il compilatore e la JVM leggono automaticamente il
classpath
Classpath in javac
Classpath in JVM