Okey, esta é minha segunda resposta a esta questão, e é assim que você instala um JDK atual no linux! (É para o Debian, mas os usuários do Ubuntu não devem ver muitas diferenças).
Ferramentas de que você precisa:
apt-get install fakeroot zip unzip mkisofs
Agora vá para java.sun.com e faça o download de um JDK6 atual. Deve ser algo como jdk-6u20-linux-i586.bin
!
Não queremos instalá-lo diretamente para que ele se comporte como um bom pacote. Então nós usamos o fakeroot para instalá-lo como algum usuário.
mv jdk-6u20-linux-i586.bin ~someuser
su - someuser
fakeroot
chmod a+x jdk-6u20-linux-i586.bin
sh ./jdk-6u20-linux-i586.bin
cd jdk1.6.0_20/man
for i in 'find -type f'; do gzip $i; done;
cd ../..
# Tar the results to have them handy for the real installation
tar cfz jdk1.6.0_20.tgz jdk1.6.0_20/
Agora deixamos o fakeroot (Ctrl-D) e o shell do usuário (Ctrl-D novamente) e instalamos o tar para / usr / local:
cd /usr/local
tar xfvz ~someuser/jdk1.6.0_20.tgz
ln -s /usr/local/jdk1.6.0_20/ /usr/local/jdk
ln -s /usr/local/jdk1.6.0_20/jre/ /usr/local/jre
for program in appletviewer apt extcheck idlj jar jarsigner java javac \
javadoc javah javap javaws jconsole jdb jhat jinfo jmap \
jps jrunscript jsadebugd jstack jstat jstatd jvisualvm \
keytool native2ascii orbd pack200 policytool rmic rmid \
rmiregistry schemagen serialver servertool tnameserv \
unpack200 wsgen wsimport xjc ; do \
update-alternatives --install "/usr/bin/$program" "$program" \
"/usr/local/jdk1.6.0_20/bin/$program" 1130 \
--slave "/usr/share/man/man1/$program.1.gz" "$program.1.gz" \
"/usr/local/jdk1.6.0_20/man/man1/$program.1.gz"; done;
Testes de teste de rotina ok:
java -version
man java
Feito.