Oh bene, finalmente un nuovo post ed un argomento nuovo!!! JAVA! Java è un’isola … Nnon scherziamo: Java è un linguaggio di programmazione tra i più diffusi (php, C#, …) ha un’ottimo pregio rispetto a tanti linguaggi: il codice si scrive una sola volta e si può eseguire su diverse macchine purchè vi sia nel sistema operativo una versione della jvm (Java Virtual Machine). Infatti il codice Java viene compilato in bytecode ed un unico bytecode può essere interpretato da jvm presenti sia sotto linux, macos, windows, solaris, … Non entro nel dettaglio perchè non sono esperto e non vorrei raccontarvi frottole =).
Installare java su linux?
Qualcuno può pensare che basti scrivere:
$sudo apt-get install sun-java6-jdk
e invece no! Io ho provato a lanciare quel comando, ma una volta installato java non riuscivo a compilare. Facciamo una cosa alla volta: ora vi mostro un programma scritto in linguaggio java a qualche sua piccola caratteristica fondamentale.
Un semplice programma java:
import java.utils.*;
public class PrimaClasse
{
public static void main (String argv[])
{
System.out.println(“Io il mondo non lo saluto più!”);
}
}
Prima di proseguire, faccio notare un paio di cose. Punto primo: il file che contiene questo codice deve avere lo stesso nome della classe ed avere estensione “.java”. Diversamente non ci sarà possibile compilare il file. Altra cosa, se escludiamo i codice scritto in questo modo, un programma java DEVE contenere il resto del codice. In altre parole, c’è una prima riga che importa delle librerie di base, c’è una classe principale che ha il nome del file, e c’è un metodo main. DEVE essere così.
Non compila!?
Orbene, nel mio caso avevo fatto questo programmino, e lanciando javac PrimaClasse.java ricevevo un messaggio che diceva di non trovare java.utils.* … insomma. Il problema in questo caso è il classpah. Per farla breve, bisogna sistemare una variabile di ambiente e dirle che se uno cerca delle librerie, deve cercarle nella cartella … Quale cartella? Evidentemente installando java nel modo che abbiamo visto sopra nessuno va a definire quale sia il classpath. Come possiamo fare?
Esiste un file che possiamo trovare in /etc/ e si chiama environment che contiene il classpath. Noi, in questo file, dobbiamo scrivere qualche cosa che dica, quando scriviamo import java.utils.* nel nostro sorgente, dove si trova il file da importare (import = importare) ovvero dove devono essere ricercate le librerie al momento incui il comando javac incontra la stringa import java.utils.*. Scusate se sono stato un po’ prolisso ma ho cercato di spiegare la questione in più modi possibile per poter essere di aiuto a chiunque ne abbia bisogno.
Re-installiamo java!
In altri post che ho trovato in rete viene saltato qualche pezzo, ed io spero di non saltarne nemmeno uno: prima di procedere e di fare qualsiasi cosa, ripuliamo il nostro computer dalla nostra installazione:
$sudo apt-get remove sun-java6-jdk
Ora la nostra macchina è a posto. Scarichiamo il binario che ci permetterà di installare java nuovamente ma in una maniera un tantino differente rispetto poco fa:
In questo link dovete cercare l’ultima versione di java disponibile. Se posso dareun consiglio spassionat, non cercare una versione che termina con RC. Significa release candidate e credo significhi che non si tratta di una versione stabile. Al di la di questo, scegliete la vostra versione di java. A quel punto vi viene richiesto il sistema operativo (Linux!). Arriverete ad una pagina dove potrete scegliere il file da scaricare. Scegliete un file con il nome del tipo:
Java SE Development Kit 6u7
jdk-6u7-linux-i586.bin
Questo è il file che ho scaricato io. A questo punto, una volta scaricato, dovete lanciarlo in questo modo:
$sudo sh jdk-6u7-linux-i586.bin
State installando java (questo post è un parto =) … ). Ricordate che poo fa parlavamo del classpash? Se non ve lo ricordate rileggetevi il post dal principio =). Se velo ricordate ora capirete meglio quello che stiamo per fare. Bene: il comando che abbiamo lanciato ha generato una cartella con java dentro (si vabbè …). Adesso prendete quella cartella e schiaffatela dentro /usr/local/. Il classpat dovrà puntare a quella cartella!
Ricordate anche il file environment? Si? Bene: se ora digitate
$gedit /etc/environment
e sostituite il suo contenuto con
PATH="/usr/local/jdk1.6.0_03/bin:.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games" LANG="it_IT.UTF-8" LANGUAGE="it_IT:it:en_GB:en" JAVA_HOME="/usr/local/jdk1.6.0_03" CLASSPATH="/usr/local/jdk1.6.0_03/lib:."
avete FINITO! Riavviate il vostro PC, iniziate a programmare java allegramente, e se avete qualsiasi problema provate a scrivermi nel forum. L’ho aperto mesi fa e non l’ho mai usato e penso che sia anche ora di farlo =).
Fatemi sapere.
jdk-6u7-linux-i586.bin