Окей, это мой второй ответ на этот вопрос, и именно так вы устанавливаете текущий JDK в Linux! (Это для Debian, но пользователи Ubuntu не должны видеть много различий).
Инструменты, которые вам нужны:
apt-get install fakeroot zip unzip mkisofs
Теперь перейдите на java.sun.com и загрузите текущий JDK6. Это должны быть имена типа jdk-6u20-linux-i586.bin
!
Мы не хотим устанавливать его напрямую, чтобы он вел себя как хороший пакет. Поэтому мы используем fakeroot, чтобы установить его как пользователя.
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/
Теперь мы оставляем fakeroot (Ctrl-D) и someuser-shell (снова Ctrl-D) и устанавливаем наш tar в /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;
Монахиня тестирует все хорошо:
java -version
man java
Готово.