Обновляем JDK (JRE) до 64 битной версии

Изображение пользователя sawa.

Сначала необходимо установить apt-get JDK из репозитариев:
sudo apt-get install sun-java6-jdk

Загрузить JDK с http://download.java.net/jdk6/ на данный момент это Linux x64 самораспаковывающийся JDK файл

Переместить в директорию /usr/lib/jvm, сделать исполняемым и выполнить в консоли (с правами root):
cd /usr/lib/jvm
./jdk-6u12-ea-bin-b03-linux-amd64-22_dec_2008.bin

Создать симлинк:
ln -s jdk1.6.0_12 java-6.12-sun

Создать скрипт:
kate create-jvm-alternative.pl

Вставить следующее содержимое:
#!/usr/bin/perl

use strict;
# use this as template - we assume that you have java 6 installed
# its in the repo !
my $jvm_template="java-6-sun";
my $jvm_template_path="/usr/lib/jvm/java-6-sun";

# this is teh new jvm
my $jvm_name="java-6-sun-1.6.0.12";
my $jvm_alias="java-6.12-sun";
my $jvm_path="/usr/lib/jvm/java-6.12-sun";
my $jvm_priority=10600;
my $jvm_section="non-free";

open(JINFO_OUT, ">/usr/lib/jvm/.$jvm_alias.jinfo") or die "Can not write jinfo file !";

#write header
print JINFO_OUT "name=$jvm_name\n";
print JINFO_OUT "alias=$jvm_alias\n";
print JINFO_OUT "priority=$jvm_priority\n";
print JINFO_OUT "section=$jvm_section\n\n";

my @lines = ();
open(IN, "/usr/lib/jvm/.$jvm_template.jinfo") or die "Can note read jinfo template!";
@lines = <IN>;
close(IN);

my @new_config = ();
foreach(@lines){
    if($_=~ /$jvm_template_path/){
        chomp($_);
        $_ =~ s/$jvm_template_path/$jvm_path/;
        push(@new_config, $_);
        print JINFO_OUT "$_\n";
    }
}
close(JINFO_OUT);

foreach(@new_config){
    my @split = split(' ', $_);
    system("update-alternatives --install /usr/bin/@split[1]  @split[1]  @split[2] $jvm_priority");
}

Сохранить и закрыть kate.

Выполнить:
perl create-jvm-alternative.pl

Открыть в kate файл .java-6.12-sun.jinfo:
kate .java-6.12-sun.jinfo

Заменить (используя меню "Правка"->"Заменить")
/usr/lib/jvm/java-6.12-sun/jre/plugin/amd64/ns7/libjavaplugin_oji.so
на
/usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so
Сохранить и закрыть kate.

Добавить в начале файла /etc/bash.bashrc строки:
#JAVA
if [ -z "$JAVA_HOME" ] ; then
    JAVA_HOME="/usr/lib/jvm/java-6.12-sun/jre"
fi
export JAVA_HOME
if [ -z "$JDK_HOME" ] ; then
    JDK_HOME="/usr/lib/jvm/java-6.12-sun"
fi
export JDK_HOME
export PATH=$JAVA_HOME/bin:$PATH

Перезагрузка.

Добавить в начале файла /etc/jvm строчку:
/usr/lib/jvm/java-6.12-sun

Добавить в начале файла /etc/eclipse/java_home строчку:
/usr/lib/jvm/java-6.12-sun

Выполнить:
update-alternatives --config java
и выбрать номер альтернативы /usr/lib/jvm/java-6.12-sun/jre/bin/java

Установить новой java подчиненных (slave):
update-alternatives --install /usr/bin/java java ${JAVA_HOME}/jre/bin/java \
10600 \
--slave /usr/share/man/man1/java.1.gz java.1.gz  ${JAVA_HOME}/man/man1/java.1 \
--slave /usr/bin/java_vm java_vm  ${JAVA_HOME}/jre/bin/java_vm \
--slave /usr/bin/javac javac  ${JAVA_HOME}/bin/javac \
--slave /usr/bin/javaws javaws  ${JAVA_HOME}/bin/javaws

Далее установка плагинов, имеет смысл только для 64-битных программ.

Почему-то это приходится делать вручную:
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/firefox-javaplugin.so &&\
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/iceape-javaplugin.so &&\
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/iceweasel-javaplugin.so &&\
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/mozilla-javaplugin.so &&\
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/midbrowser-javaplugin.so &&\
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/xulrunner-javaplugin.so &&\
ln -s -f /usr/lib/jvm/java-6.12-sun/jre/lib/amd64/libnpjp2.so /etc/alternatives/xulrunner-1.9-javaplugin.so

и это тоже (лучше по одному, вдруг не все программы установлены или отличается от моего место расположения плагинов):
mv -f /usr/bin/firefox-javaplugin.so /usr/lib/firefox/plugins/firefox-javaplugin.so &&\
mv -f /usr/bin/iceape-javaplugin.so /usr/lib/iceape/plugins/iceape-javaplugin.so &&\
mv -f /usr/bin/iceweasel-javaplugin.so /usr/lib/iceweasel/plugins/iceweasel-javaplugin.so &&\
mv -f /usr/bin/mozilla-javaplugin.so /usr/lib/mozilla/plugins/mozilla-javaplugin.so &&\
mv -f /usr/bin/midbrowser-javaplugin.so /usr/lib/midbrowser/plugins/midbrowser-javaplugin.so &&\
mv -f /usr/bin/xulrunner-javaplugin.so /usr/lib/xulrunner/plugins/xulrunner-javaplugin.so &&\
mv -f /usr/bin/xulrunner-1.9-javaplugin.so /usr/lib/xulrunner-1.9.0.5/plugins/xulrunner-1.9-javaplugin.so

Тест:
java -version
Получаю:
java version "1.6.0_12-ea"
Java(TM) SE Runtime Environment (build 1.6.0_12-ea-b03)
Java HotSpot(TM) 64-Bit Server VM (build 11.2-b01, mixed mode)

Проверка в браузере:
Проверка установки Java
http://www.games.ru/online/

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры