Hardware Upgrade Forum

Hardware Upgrade Forum (https://www.hwupgrade.it/forum/index.php)
-   Corsi, Tutorial e FAQ (https://www.hwupgrade.it/forum/forumdisplay.php?f=56)
-   -   [Tutorial Java] Guida alla compilazione (https://www.hwupgrade.it/forum/showthread.php?t=557945)


cn73 11-11-2003 10:46

JAVA: contributi!
 
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:

Codice:

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

Codice:

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

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!).
Codice:

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)


Il secondo è un applicativo banale che però esemplifica alcuni concetti basilari e da una idea di cosa sia una GUI (Interfaccia Grafica):
cercafiles.zip

Concludo con alcuni dei miei link preferiti:
esempi di programmazione

Free Electronic Book: Thinking in Java, 3rd Edition

www.mokabyte.it

http://www.codeguru.com/

E ovviamente il mitico www.google.com !

recoil 11-11-2003 11: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 10:04

Vedo che interessa moltissimo...il prossimo che fa una domanda sul CLASSPATH me lo mangio a colazione :D

VICIUS 12-11-2003 19: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/t...2002/index.htm

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

ciao ;)

recoil 16-11-2003 22:56

up ;)

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

cn73 17-11-2003 12:30

Dici che il moderatore non se ne è accorto? Ora glielo segnalo...

cn73 17-11-2003 12:33

ehm...chi è il mod?? :muro: :D

Strat 17-11-2003 15: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 11:11

Quote:

Originariamente inviato da cn73
ehm...chi è il mod?? :muro: :D

:rolleyes:

recoil 24-11-2003 11: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 11: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 11:55

Quote:

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 15:41

E' stato messo ;)

recoil 24-11-2003 16:31

a questo punto non serve più "uppare" il thread, a meno che qualcuno voglia contribuire :)

PGI 20-12-2003 01: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

misterx 29-12-2003 19:43

si è affossato questo 3d ?

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

Codice:

            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 09:58

Questo topic + linkato in programmazione FAQ e non in java FAQ... :(

cionci 22-01-2004 10:01

Ve lo linko anche dall'altra parte...

Angus 22-01-2004 11:09

Re: JAVA: contributi!
 
Quote:

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 11:38

Sì...ha sbagliato, ma poi sul path come vedi ha scritto JDK...

cn73 22-01-2004 11: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 11:57

Ma il JRE ha anche javac ? Non lo sapevo...

Angus 22-01-2004 12:14

Quote:

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.

Quote:


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

Però non è vero il contrario.

cn73 22-01-2004 12: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 12:44

Quote:

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 13:54

La pace si fa quando c'è in corso una guerra... nessuna guerra...e quindi nessuna pace :D

cn73 09-03-2004 12: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 16:33

Tutorial e short courses

La pagina dei tutorial

Creating a GUI with JFC/Swing

La pagina delle FAQ


Tutti gli orari sono GMT +1. Ora sono le: 09:49.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
Hardware Upgrade S.r.l.