domenica 3 agosto 2008

Installazione e configurazione Java su Linux

In questo post voglio spiegare come configurare e installare java su Linux, mi soffermerò anche sulle variabili d'ambiente spiegando il perchè di queste variabili dato che la maggior parte dei tutorial sullo stesso orgamento, spiega sempre come fare e mai il perchè di tale configurazione...

Quindi la guida è dedicata ai principianti java e linux che vogliono installare il jdk sul proprio pc linux



INSTALLAZIONE

Per prima cosa scarichiamo il jdk  al momento siamo alla 1.6. Io ho scaricato il file java_ee_sdk-5_05-linux.bin cioè l'SDK jee 5 che contiene oltre al jdk 1.6 le librerie per lo sviluppo di applicazioni jee.

Clicchiamo sul file .bin scaricato e seguiamo il wizard di installazione della sun.

Di default il wizard installa la cartella principale del jdk nella nostra home directory nel mio caso /home/myhome/SDK/jdk (ci sta la cartella SDK perchè ho scaricato l'sdk altrimenti avremmo avuto direttamente la jdk nella home).

CONFIGURAZIONE

Anche se abbiamo installato java ancora non è funzionanante, bisogna ora configurarlo ossia dobbiamo creare le variabili d'ambiente per java.

Le variabili d'ambiente le possiamo definire come delle variabili globali che il sistema operativo (Linux, Winzozz, Mac, ecc) mette a disposizione per raggiungere comandi e path preimpostati evitandoci alcune operazioni macchinose per poter esguire applicazioni....

Nel nostro caso interverremo e sulla onnipresente e sacrosanta variabile PATH e creeremo due nuove variabili CLASSPATH e JAVA_HOME

PATH e una variabile molto importante in linux in quanto essa punta a tutte le cartelle dove vi stanno degli eseguibili, con ciò quando scriviamo un comando da shell, linux controlla se cè il comando nelle cartelle contenute nella variabile e lo richiama evitando a noi di scrivere il path completo dell'eseguibile

Ad esempio se volessimo eseguire il comando del compilatore java in una cartella dove ci sta il il nostro bel file MiaClasse.java senza la configurazione del path dovremmo scrivere:

> /home/myhome/SDK/jdk/bin/javac MiaClasse.java

un po macchinoso vero... dopo aver configurato la variabile PATH ci basterà scrivere solo:

>javac MiaClasse.java

molto meglio vero?... ;)

JAVA_HOME e un'altra variabile nella quale sarà impostato il path della cartella del jdk. Essa viene utilizzata da tutti quegli applicativi che hanno bisogno del jdk installato sul pc. Se noi la settiamo loro richiamando tale variabile sanno dove si trova il jdk.

CLASSPATH be questa è una delle variabili più importanti per per i comandi java e javac visto vhe conterrà tutti i path dove ci stanno le librerie di classi java di default e le cartelle dei nostri package, in formato cartella, jar e zip. Infatti essa utilizzata dai comandi su citati per risolvere gli import delle classi utilizzate nei nostri applicativi; insomma senza di essa sarebbe impossibile sviluppare in java (mi fermo qui perchè ci vorrebbe un post a parte per spiegare il classpath java e la gestione dei package. Lo lascio a voi).

Per impostare queste variabili abbiamo due strade una è settare tali variabili in modo che siano settate per tutti gli utenti (la dico così per semplificare le cose..;)), l'altra ogni utente setterà le proprie di variabili e ovviamente è quella da utilizzare se avete lasciato la cartella del jdk nella vostra home

Nel  primo caso dobbiamo modificare (come utente root) il file /etc/enviroment (ovviamente conviene spostare la cartella del jdk nella vostra partizione di root magari nella cartella /opt ) . Il file contiene varie  righe di testo del tipo  NOME_VARIABILE="contenuto" quello che interessa a noi e cambiare la variabile PATH aggiungendo al contenuto già presente  il percorso della cartella bin del jdk separando con ":" da quello precedente e crearne due nuove CLASSPATH e JAVA_HOME.

Nel secondo caso andiamo a modificare il file nascosto .bashrc che si trova nella nostra home. Questo file viene caricato dalla shell al suo avvio ed esegue le operazioni bash in esso contenuto. Noi lo useremo per settare le variabili che ci serviranno per  i nostri comandi java e dato che tale file è presente in ogni home avremo una personalizzazione delle variabili per ogni utente.

A mio avviso è meglio utilizzare la seconda, questo perchè se un altro utente nn vuole java nn se lo trova installato o magari vuole usare un'altra versione... In secondo luogo dato che tali configurazioni ci servono quando lavoriamo da sheell non vedo perchè bisogna settarle prima.. Oltretutto se usiamo degli ide (come eclipse) queste vanno settate all'interno dell'ide..

Comunque per settarle apriamo il file .bashrc in un editor di testo, ecco il comando con il path completo del file:

>gedit /home/myhome/.bashrc

(gedit è l'editor di testo per il sistema grafico gnome, se usate kde scrivete kate o kwrite)

Alla fine del file secriviamo ciò che segue dopo spiego:

PATH=$PATH:/home/myhome/SDK/jdk/bin

export PATH

JAVA_HOME=/home/myhome/SDK/jdk

export JAVA_HOME

CLASSPATH=.:/home/myhome/SDK/jdk/jre/lib:/home/myhome/SDK/jdk/lib:/home/myhome/mypackages

export CLASSPATH

Bene vediamo cosa ho scritto. Ho dichiarato e inizializzato la variabile path con il percorso della cartella bin dove sono i nostri comandi per utilizzare java (javac, java, jar ecc..). Notate $PATH questa nn fa altro che richiamare quello che è già contenuto nel nostro path all'avvio del sitstema (come già detto è configurato nel file /etc/enviroment) e gli ho accodato il path che mi serviva. Dopo ho chiamato il comando export sulla variabile in modo da renderla visibile all'enviroment.

Stessa cosa per la variabile JAVA_HOME dichiarazione, inizializzazione con il path della nostra cartella jdk ed export; ovviamente non ci sta $JAVA_HOME perchè questa nn è settata in precedenza.

Per la variabile CLASS_PATH la ho inizializzata con i path separati da ":" dove sono contenute le librerie java e ho aggiunto come esempio il path dove andremo a mettere i nostri package da richiamare in altre classi, ovviamente se i nostri package si trovano in un altro path dobbiamo cambiare la dicitura /home/myhome/mypackages con il path che ci interessa o aggiungerne altri.

Non ci resta che salvare il file .bashrc e riavviare la shell per vedere se tutto è andato a buon fine.

Per testare ciò scrivete, riavviata la shell, il comando "env" . Appariranno tutte le variabili dell'enviroment comprese quelle che abbiamo settato...

Per testare il comando java scrivete "java -version" e se questo stamperà a video la versione di java l'installazione e configurazione è andata a buon fine. Non ci resta che scrivere le nostre classi.

Nessun commento:

Posta un commento