Convivência entre OpenJDK e OracleJVM no Kubuntu

Antigamente era comum a utilização do Java para Applets e afins, porém agora me deparo com isto tão raramente que só fui descobrir hoje, que o Firefox bloqueou versões antigas do Java e meu Firefox estava sem plugin Java.

Tinha instalado apenas o OpenJDK, que vem por padrão no Kubuntu e este pelo jeito não tinha instalado o plugin do navegador. Como a VM desta implementação me dá problemas com alguns aplicativos, resolvi colocar logo a implementação da Oracle.

Dependência do OpenJDK

Inicialmente, o melhor seria remover a OpenJDK e deixar apenas a versão Oracle, porém há uma penca de pacotes que dependem dele, então nada feito, o mais eficiente é manter ambas máquinas virtuais simultaneamente.

Instalando a JVM Oracle a partir do pacote “tar.gz”

Arquivos:

Baixando neste link o pacote apropriado à arquitetura de seu sistema, basta descompactar em um local apropriado. No meu caso coloquei junto às instalações do OpenJDK, em “/usr/lib/jvm/“, ficando “/usr/lib/jvm/jre1.7.0_07/“.

Configuração:

É necessário configurar o link simbólico usado na execução do Java (no caso “/usr/bin/java“), para apontar à nova instalação. Você pode simplesmente substituir o link atual com um novo, porém irá perder a referência à instalação atual, o que pode ser útil no caso de resolver remover/alterar a nova instalação. A boa é utilizar o “update-alternatives“, que permite mantermos uma lista destinos alternativos para um link.

Para saber qual a situação do Java no “alternatives”, use o comando:

sudo update-alternatives --config java

Do comando acima poderá resultar uma listagem como a que segue, onde o link já está configurado no alternatives e já existe mais de uma alternativa como destino:

There are 2 choices for the alternative java (providing /usr/bin/java).
  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
* 2            /usr/lib/jvm/jre1.7.0_07/bin/java                   1      manual mode
Press enter to keep the current choice[*], or type selection number:

No caso acima o asterisco mostra o destino ativo e para mudar basta responder ao aplicativo, entrando com o índice do destino desejado.

Poderão haver ainda duas outras saídas indicando quando há apenas um destino configurado e quando o link não está no alternatives. No caso do link ainda não estar no alternatives, o mais interessante é você primeiro configurar o destino atual do mesmo, antes de colocar o destino de sua nova instalação, de modo que não irá perder a referência ao destino antigo.

Para verificar o destino atual de um link, utilize:

readlink <Caminho_do_link>

Para incluir um novo destino para o Java no alternatives, use:

sudo update-alternatives --install /usr/bin/java java <Diretório_de_sua_instalação>/bin/java <Prioridade>

* Prioridade, como já subentende-se, define a prioridade dos destinos no modo automático, então quanto maior o valor maior a prioridade.

Testando:
Use o seguinte comando que irá apresentar a versão da sua JVM padrão:

java -version

No meu caso:

java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Configurando o plugin do Firefox

Quanto ao diretório de plugins do Firefox, normalmente existem dois, sendo um geral (para todos usuários) e outro restrito (/home/.mozilla/“). No meu caso utilizei o geral, localizado em /usr/lib/mozilla/plugins/“.

Primeiro remova versões antigas do plugin, acessando ambos diretórios citados acima e removendo os arquivos, “libnpjp2.so” e “javaplugin-oji.so“, caso existam. Agora basta criar um link simbólico para a lib, no diretório do Java, através do comando a seguir:

ln -s <Diretório da JVM>/lib/<Arquitetura>/libnpjp2.so <Diretório de Plugins>/libnpjp2.so

:: Onde <Arquitetura> é  “i386” ou “amd64” (respectivamente 32 e 64 bits).

Testando o plugin:

Acesse aí: http://www.java.com/pt_BR/download/testjava.jsp

Referências: