PDA

View Full Version : [Tutorial Java] Guida alla compilazione


cn73
11-11-2003, 09:46
Pensavo di scrivere col vostro aiuto una piccola guida
introduttiva al JAVA, sottolineando alcuni concetti basilari senza i quali è impossibile anche eseguire un semplicissimo programma.
Questo è il mio contributo iniziale.

Per prima cosa è necessario scaricare ed installare il JRE (Java Runtime Enviroment) o meglio ancora il JSDK (Java Source Developement Kit) che fornisce oltra al JRE alcuni strumenti per facilitare la realizzazione degli applicativi.

A questo link: http://java.sun.com/j2se/1.4.2/download.html troverete i download per le varie piattaforme.

A quest'altro: http://java.sun.com/docs/ troverete moltissimi documenti indispensabili, praticamente tutto quello che serve!

Consiglio specialmente di scaricarsi il Tutorial: http://java.sun.com/docs/books/tutorial/index.html e la documentazione sulle Api: http://java.sun.com/api/index.html .

alcuni esempi di codice li trovate invece qui:http://developer.java.sun.com/developer/codesamples/.

Supponiamo ora di avere installato il nostro JRE (Java Runtime Enviroment) nella cartella c:\jdk1.4.2. Nel nostro PATH di ambiente dovremmo aggiungere la directory c:\jdk1.4.2\bin che contiene fra gli altri gli eseguibili javac (per compilare) e java (per eseguire). Meglio mettere tutto in un file batch, che potrebbe avere questa struttura:


REM ----installazione jdk
SET PATH=%PATH%;C:\jdk1.4.2\BIN
SET APP_HOME= ...
set CLASSPATH=.;%APP_HOME%



Il CLASSPATH indica al compilatore dove trovare le classi per risolvere le dipendenze...è un concetto fondamentale, sia per compilare che per eseguire!
Se la nostra classe che compiliamo utilizza una classe appartenente a un diverso package, o contenuta in un JAR (archivio che comprende n package/classi), dobbiamo necessariamente dire al compilatore dove si trovano queste classi!
Se ad esempio nella nostra cartella abbiamo un semplice programmino java


import import mypackage.MyClass;

class Prova {

public static void main(String[] args){
MyClass myobj = new MyClass(...)
....

}
}


nel CLASSPATH andrà aggiunto il percorso del package mypackage (che altro non è che una directory).

A questo punto compilare è banale...ricordarsi che il nome del file java deve essere uguale (case sensitive) a quello che diamo all'interno della nostra classe.

Apriamo una sessione DOS o una shell Linux e lanciamo il nostro batch (o script) per settare le variabili di ambiente. Poi semplicemente:

javac Prova.java


si ottiene un file Java.class, il famoso bytecode che poi la JVM (Java Virtual Machine) si occuperà di interpretare (da qui la pecca forse principale del JAVA, la sua proverbiale lentezza, almeno rispetto ad altri linguaggi.Il vantaggio principale però è che questo bytecode è indipendente dalla architettura, perciò qualunque JVM di versione uguale o superiore può tranquillamente interpretarlo!).

java Prova


Ricordiamo poi che la maggior parte dei browser integrano una JVM, per fare girare le famose applet java. Purtroppo quella della Microsoft fornita di default con Internet Explorer si è fermata a parecchi anni fa, e non fornisce il supporto ad esempio alle SWING, il famoso package per realizzare interfacce grafiche complesse. Poco male, una volta installato il JSDK, il nostro browser si appoggerà direttamente alla JVM SUN ;)

Faccio seguire un esempio di applet e uno di applicazioncina a scopo didattico:

la prima è il classico giochino snake, il serpentello che mangia le mele:
scarica (32K) (http://forum.pctuner.net/forum/attachment.php?s=&postid=269421)


Il secondo è un applicativo banale che però esemplifica alcuni concetti basilari e da una idea di cosa sia una GUI (Interfaccia Grafica):
cercafiles.zip (http://www.pctuner.net/Software/Java/CercaFiles.zip)

Concludo con alcuni dei miei link preferiti:
esempi di programmazione (http://www.linux.clavis.it/docs/libri/AppuntiLinux/AL-6.25.116.html)

Free Electronic Book: Thinking in Java, 3rd Edition (http://www.mindview.net/Books/TIJ/)

www.mokabyte.it

http://www.codeguru.com/

E ovviamente il mitico www.google.com !

recoil
11-11-2003, 10:40
buona idea ;)
direi di aggiungere un link a questa discussione nelle faq che ci sono in rilievo


intanto metto qualche link pure io:

EDITOR Java gratuiti:

http://www.jcreator.com/ versione freeware o shareware, per windows

http://www.jedit.org/ scritto in java quindi va in win, linux e mac

http://www.eclipse.org/

http://www.jext.org/ idem come jedit

http://java.sun.com/j2se/1.4.2/download.html potete scaricare NetBeans insieme a J2SE oppure nella stessa pagina trovate JRE e SDK oltre alla documentazione

cn73
12-11-2003, 09:04
Vedo che interessa moltissimo...il prossimo che fa una domanda sul CLASSPATH me lo mangio a colazione :D

VICIUS
12-11-2003, 18:16
Si si anche io :D

Sono un po di nicchia ma io mi trovo da dio.
Java Developement Enviroment For Emacs http://jdee.sunsite.dk/
Emacs Code Browser http://ecb.sourceforge.net/

Se ad alcuni interessa qui ci sono le lezioni dei corsi che ho frequentato all'universita in formato pdf.

Fondamenti di informatica L-A: http://www.ingce.unibo.it/~mviroli/teaching/fondLA2002/index.htm

Fondamenti di informatica L-B: http://www-lia.deis.unibo.it/corsi/2002-2003/FONDINF-LB-CE/

ciao ;)

recoil
16-11-2003, 21:56
up ;)

anche se ripeto che ci vorrebbe il link nel thread in rilievo, altrimenti questo finisce nel dimenticatoio

cn73
17-11-2003, 11:30
Dici che il moderatore non se ne è accorto? Ora glielo segnalo...

cn73
17-11-2003, 11:33
ehm...chi è il mod?? :muro: :D

Strat
17-11-2003, 14:01
Chi è che spiega il mitico "Hello, World!" ?

Ieri ho aperto un post su Robocode, che è un giochetto che si sono inventati quelli della IBM principalmente per far avvicinare a Java delle nuove leve ma in modo giocoso.

Spero che questo post rimanga in rilevo e che molti diano dei contributi, io appena ho tempo scrivo qualcosa.

Magari si potrebbe anche analizzare passo per passo qualche programma importante: ricerche, ordinamenti, ecc...

cn73
24-11-2003, 10:11
Originariamente inviato da cn73
ehm...chi è il mod?? :muro: :D


:rolleyes:

recoil
24-11-2003, 10:20
io mi ricordo ilsensine e gli ho mandato un pvt, se non risponde perché magari è via in questi giorni contatto qualcuno che so che c'è di sicuro (tipo bluelake o homerr)

cn73
24-11-2003, 10:40
ilsensine il mod di Linux??
Avevo intenzione di aggiungere articoli a questa guida, ma se deve finire nel dimenticatoio mi trovo di meglio da fare...

recoil
24-11-2003, 10:55
Originariamente inviato da cn73
ilsensine il mod di Linux??
Avevo intenzione di aggiungere articoli a questa guida, ma se deve finire nel dimenticatoio mi trovo di meglio da fare...

una volta mi pare che ilsensine fosse moderatore di questa sezione.
cmq c'è pur sempre mjordan che ha scritto le faq e quindi può editare il suo messaggio e mettere un semplice link a questa discussione :)

cn73
24-11-2003, 14:41
E' stato messo ;)

recoil
24-11-2003, 15:31
a questo punto non serve più "uppare" il thread, a meno che qualcuno voglia contribuire :)

PGI
20-12-2003, 00:24
Ho trovato una pagina che può interessare. E' un elenco dei valori restituiti dalle proprietà di sistema a seconda dei sistemi operativi su cui "gira" la jvm.

link (http://www.tolstoy.com/samizdat/sysprops.html)

misterx
29-12-2003, 18:43
si è affossato questo 3d ?

balordo questo esempio di assegnamento (effetto collaterale) che offre due risultati differenti:


int i = 3 , j;

j = i + (i = 5);
System.out.println("i=" + i + " , " + "j=" + j);

j = ( i = 5) + i;
System.out.println("i=" + i + " , " + "j=" + j);

cn73
22-01-2004, 08:58
Questo topic + linkato in programmazione FAQ e non in java FAQ... :(

cionci
22-01-2004, 09:01
Ve lo linko anche dall'altra parte...

Angus
22-01-2004, 10:09
Originariamente inviato da cn73

Supponiamo ora di avere installato il nostro JRE (Java Runtime Enviroment) nella cartella c:\jdk1.4.2. Nel nostro PATH di ambiente dovremmo aggiungere la directory c:\jdk1.4.2\bin che contiene fra gli altri gli eseguibili javac (per compilare) e java (per eseguire).



non ne sono sicuro al 100%, ma credo che il framework necessario allo sviluppo e alla compilazione dei sorgenti sia il JDK, non il JRE che è letteralmente Ambiente di Esecuzione Java e che quindi contiene solo gli eseguibili delle JVM e le librerie necessarie all'esecuzione.

cionci
22-01-2004, 10:38
Sì...ha sbagliato, ma poi sul path come vedi ha scritto JDK...

cn73
22-01-2004, 10:46
Non ho capito la vostra affermazione.

1)Anche installando solo il JRE avrei gli eseguibili nella directory bin.
2)Installando il SDK l'affermazione sarebbe ugualmente corretta, in quanto JRE ne è un sottoinsieme.

cionci
22-01-2004, 10:57
Ma il JRE ha anche javac ? Non lo sapevo...

Angus
22-01-2004, 11:14
Originariamente inviato da cn73

1)Anche installando solo il JRE avrei gli eseguibili nella directory bin.



Credo che gli eseguibili per lo sviluppo, in particolare javac, e le librerie per la compilazione siano assenti nel JRE.



2)Installando il SDK l'affermazione sarebbe ugualmente corretta, in quanto JRE ne è un sottoinsieme.



Però non è vero il contrario.

cn73
22-01-2004, 11:36
Allora, premettendo che questo atteggiamente da "ti correggo a tutti i costi non mi piace", e sottolineando che comunque si era capito che cosa volevo dire, ammetto l'errore :D. javac non viene installato col runtime enviroment.

Angus
22-01-2004, 11:44
Originariamente inviato da cn73
Allora, premettendo che questo atteggiamente da "ti correggo a tutti i costi non mi piace", e sottolineando che comunque si era capito che cosa volevo dire, ammetto l'errore :D. javac non viene installato col runtime enviroment.

Per dimostrarti che non era mia intenzione correggerti a tutti i costi, ti chiedo comunque scusa.
Le mie intenzioni erano voler sapere con sicurezza, visto che non ne ero sicuro al 100%, che la JRE non fosse la piattaforma di sviluppo ma solo l'ambiente di esecuzione. Quindi grazie per aver precisato che la mia affermazione era giusta.

Pace?

cn73
22-01-2004, 12:54
La pace si fa quando c'è in corso una guerra... nessuna guerra...e quindi nessuna pace :D

cn73
09-03-2004, 11:26
Vi linko questo bellissimo sito con un mucchio di esmpi molto ben fatti di codice liberamente utilizzabile:

http://www.javaworld.com/

cn73
09-03-2004, 15:33
Tutorial e short courses (http://developer.java.sun.com/developer/onlineTraining/)

La pagina dei tutorial (http://java.sun.com/docs/books/tutorial/)

Creating a GUI with JFC/Swing (http://java.sun.com/docs/books/tutorial/uiswing/index.html)

La pagina delle FAQ (http://java.sun.com/docs/books/tutorial/information/FAQ.html)