Java SDK update3 sotto Compiz ORA!
Guide e How-to, Linux, Software, Ubuntu
Ciao a tutti.
Qualcuno probabilmente mi aveva dato per morto, ma purtroppo o per fortuna, sono ancora qui.
Ho avuto molto da fare in questi giorni, ma nonostante tutto sono riuscito ad incasinarmi per l’ennesima volta con le mie stesse mani…
I programmatori veri a questo punto sono invitati a non proseguire nella lettura, sto per elencare una serie di stupidaggini che potrebbero offenderli anche se non è mia intenzione farlo
Tutto iniziò in una giornata di pioggia, ero a lavoro e nella pausa pranzo mi sono trovato “per caso” sul sito di Netbeans.
OOOOOOOOH!
Ho dato un’occhiata ai tutorial e mi sono fatto prendere dall’entusiasmo, sembrava che chiunque in grado di muovere un mouse potesse creare senza scrivere una riga di codice una bella applicazione java con tanto di finestrelle e bottoni.
Premetto che la programmazione sta a me come il fai-da-te starebbe ad un notaio: in parole povere per me è un hobby e per quanto possano fare schifo le mie opere avranno sempre un posto d’onore
Comunque dopo averlo guardato più che provato a lavoro, sono corso subito a casa a installarlo sulla mia Ubuntu (… no uso ancora Feisty)
Noooooooo!
Vi è mai capitato di avviare un’applicazione Java mentre sta girando Compiz e vedere la finestra tutta bianca?
Beh con Netbeans (installato dai repository) è successo…
Dopo una rapida googleggiata ho scoperto che era un problema noto e risolto nell’update 2 dell’ultimo Java Runtime Enviroment.
Vado a fare un giro in casa Sun e vedo che siamo già all’update 3, mentre Ubuntu sembra non smuoversi dall’ update 1…
Certo potrei stoppare compiz e usare Netbeans lo stesso, ma a me le cose semplici non piacciono per niente e così decido di trovare il sistema per installare l’ultima versione di Java al posto di quella dei repo e visto che ci sono mi scarico anche il nuovo Netbeans che non fa mai male…
Ma ora bando alle ciance e passiamo all’how-to vero e proprio.
@edit: Per conservare il pacchetto ufficiale rilasciato nei repository di Ubuntu, esiste un metodo di installazione alternativo che consiste nell’installare il Jre o il Jdk in una directory (solitamente /opt) per conservare intatto il pacchetto ufficiale e poter beneficiare degli aggiornamenti automatici.
1. Scaricare JDK update 3
http://java.sun.com/javase/downloads/index.jsp
Scegliete il pacchetto per Linux (ovviamente) autoestraente (non l’RPM)
jdk-6u3-linux-i586.bin
2. Installate fakeroot e java-package
sudo apt-get install fakeroot java-package
Quest’ultimo è una serie di script fatti apposta per pacchettizzare le varie JRE o JDK per debian, ma al momento in cui scrivo tale pacchetto non è ancora aggiornato per funzionare con l’ultima versione di java e bisognerà fare un piccolo hack per renderlo utile al nostro scopo.
3. Modifica (eventuale) degli script di java-package
cd /usr/share/java-package
ls
Controlliamo se nell’output è presente la directory
sun-j2sdk1.6
se c’è, vuol dire che nel frattempo hanno aggiornato java-package e possiamo tranquillamente saltare al punto 4
Se non c’è la creiamo copiando sun-j2sdk1.5
sudo cp sun-j2sdk1.5 sun-j2sdk1.6
Entriamo nella directory appena creata e modifichiamo i due file install.sh e sun-j2sdk.sh
cd sun-j2sdk1.6
sudo gedit install.sh
In questo script va cambiata solamente la prima riga. Deve essere così:
suffix=j2sdk1.6-sun
Salviamo e chiudiamo.
sudo gedit sun-j2sdk.sh
Nella prima sezione noterete un blocco che inizia con
case case "${DEB_BUILD_ARCH:-$DEB_BUILD_GNU_TYPE}" in ...
alla fine di quel blocco (prima della parola esac)
aggiungete queste righe:
"jdk-6u3-linux-i586.bin") #Tra virgolette il nome del file scaricato dal sito della Sun
j2se_version=1.6
j2se_expected_min_size=130
found=true
;;
Salvate e chiudete.
4. Pacchettizziamo la JDK
Ora che i nostri script sono pronti possiamo tornare alla nostra home o altra directory in cui abbiamo scaricato la JDK e pacchettizzarla
fakeroot make-jpkg jdk-6u3-linux-i586.bin
Accettiamo la licenza e lasciamo che si crei il pacchetto .deb nella directory attuale
5. Disinstalliamo i vecchi pacchetti Java (se c’erano)
sudo apt-get remove sun-java6-*
6. Installiamo la JDK
sudo dpkg -i sun-j2sdk1.6_1.6_i386.deb
7. Aggiustiamo le variabili d’ambiente per Java
sudo gedit /etc/enviroment
Il file dovrà apparire così:
PATH=".:/usr/lib/j2sdk1.6-sun/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANG="it_IT.UTF-8"
JAVA_HOME="/usr/lib/j2sdk1.6-sun"
CLASSPATH="/usr/lib/j2sdk1.6-sun/lib:/usr/lib/j2sdk1.6-sun/classes"
LANGUAGE="it_IT:it:en_GB:en"
8. Dulcis in fundo… il plugin per firefox!
sudo ln -sf /usr/lib/j2sdk1.6-sun/jre/plugin/i386/ns7/libjavaplugin_oji.so /usr/lib/firefox/libjavaplugin_oji.so
Ce la siamo… ehm, abbiamo fatta! (spero)
Verifica… he he he
Andiamo a questo link per eseguire il test della jvm.
Se vi appare il coso che balla e la scritta “Congratulations…” significa che tutto è andato a buon fine
Ora possiamo goderci delle chicche del calibro di Netbeans 6.0 Beta2 senza dover disattivare Compiz!

Gianluca S. @ 00:30 del 6 Novembre 2007


sembro essere riuscito ad installare il tutto,
—————————-
java -version
java version “1.6.0_03″
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)
—————————-
ma la finestra continua ad essere bianca…
immagino il problema risieda nella riga che definisce il classpath in /etc/enviroment …”/usr/lib/j2sdk1.6-sun/classes”
io la directory classes non ce l’ho..
è possibile??
grazie
Nicola
Ciao Nicola.
Trovo molto strano che non sia presente la directory “classes” nel pecorso di installazione della jdk.
Prova a dare un’occhiata all’intera struttura della directory e magari postami il risultato.
Per quanto riguarda Netbeans, se lo avevi già installato prima di sistemare l’update della Jdk è facile che vada a prendere comunque la vecchia Virtual Machine e quindi continui a dare problemi, ma si può ovviare a questo problema facilmente inserendo come riga di comando per avviare Netbeans (puoi modificare l’icona d’avvio o la voce di menu) in questo modo:
netbeans -jdkhome /usr/lib/j2sdk1.6-sun
Ciao, ho commesso l’errore di installare direttamente il pacchetto bin che si scarica dal sito della sun (con un “sh jdk-6u3-linux-i586.bin”)…l’installazione è andata a buon fine ma è avvenuta sul mio desktop. Come posso cancellare i files installati e ripetere l’installazione?
Nessun problema, proprio perchè i file sono stati messi nella tua home ti basta eliminare l’intero albero generato.

Puoi farlo dal desktop oppure da terminale con
rm -r nomedirectoryNB: lo script di installazione, non fa altro che estrarre i file della JDK nel sistema, infatti bisogna poi “informare” il sistema della posizione della JDK utilizzando update-alternatives.
Un modo molto brutale (senza creare il pacchetto .deb) di installare la JDK è ad esempio quello di eseguire lo script e spostare tutto l’albero directory generato ad esempio in /opt ed infine usare update-alternatives… potrebbe essere argomento per il mio prossimo post