Instalar Java no Linux Debian

Publicado: 18/04/2010 em Escritorio, Linux, Programação
Tags:,

1. Alguns conceitos sobre a plataforma Java
Plataforma Java é o nome dado ao ambiente computacional, ou plataforma, criada pela empresa estadunidense Sun Microsystems e vendida para a Oracle depois de alguns anos. A plataforma permite desenvolver aplicativos utilizando qualquer uma das linguagens criadas para a plataforma Java, sendo a linguagem padrão a que leva seu próprio nome: Linguagem Java. Uma grande vantagem da plataforma é a de não estar presa a um único sistema operacional ou hardware, pois seus programas rodam através de uma máquina virtual que pode ser emulada em qualquer sistema que suporte a linguagem C++.

A plataforma Java é constituída de um grande número de tecnologias, cada uma provê uma porção distinta de todo o ambiente de desenvolvimento e execução de software. Os usuários finais, tipicamente, interagem com a máquina virtual Java (Java Virtual Machine, ou JVM) e um conjunto padrão de bibliotecas de classe.

Existe um Comitê Executivo (EC) que é um grupo de Members que decidem a evolução da tecnologia Java na “Java Community Process (JCP)”. Participam do comitê as organizações Apache Software Foundation, Google Inc., Hewlett-Packard, IBM, Oracle, Borland Software Corporation, Intel Corp., Sun Microsystems, Inc., RedeHat entre outras.

2. Verificar versões do Java disponíveis, e se existe Java instalada na máquina
a) verificar se existe máquina virtual Java instalada
$ java -version
Neste caso, será informado se alguma máquina virtual Java está instalada. Se não houver qualquer máquina virtual instalada, o sistema responderá assim:
bash: java: comando não encontrado

Ou ainda um outro comando:
$ which -a java
/usr/bin/java
Neste caso a resposta do sistema informa que existe uma máquina virtual Java instalada, a partir da pasta /usr/bin/

b) verificar se o sun-java está disponível no repositório Debian e se está instalado na máquina local
$ apt-cache policy sun-java6-jre
sun-java6-jre:
Instalado: (nenhum)
Candidato: 6.26-0squeeze1
Tabela de versão:
6.26-0squeeze1 0
500 http://ftp.br.debian.org/debian/ squeeze/non-free i386 Packages

Neste segundo caso, vê-se que a máquina virtual sun-java6-jre não está instalada mas está disponível no repositório Debian. Java JRE significa “Ambiente Java de Tempo de Execução” (maquina virtual java para executar aplicativos Java). Existe o sun-java6-jdk para ambiente de desenvolvimento, que não será tratado neste post.

c) verificar se o Open Java está disponível no repositório Debian e se está instalado na máquina local

$ apt-cache policy openjdk*
openjdk-6-jre:
       Instalado: (nenhum)
       Candidato: 6b27-1.12.6-1~deb6u1
openjdk-6-jdk:
       Instalado: (nenhum)
       Candidato: 6b27-1.12.6-1~deb6u1
openjdk-6-doc:
       Instalado: (nenhum)
       Candidato: 6b27-1.12.6-1~deb6u1
openjdk-6-jre-headless:
       Instalado: (nenhum)
       Candidato: 6b27-1.12.6-1~deb6u1
openjdk-6-dbg:
       Instalado: (nenhum)
       Candidato: 6b27-1.12.6-1~deb6u1

d) verificar se o sun-java está disponível no repositório Debian
$ apt-cache search sun-java
ia32-sun-java6-bin – Sun Java(TM) Runtime Environment (JRE) 6 (32-bit)
sun-java6-bin – Sun Java(TM) Runtime Environment (JRE) 6 (architecture dependent files)
sun-java6-demo – Sun Java(TM) Development Kit (JDK) 6 demos and examples
sun-java6-fonts – Lucida TrueType fonts (from the Sun JRE)
sun-java6-javadb – Java(TM) DB, Sun Microsystems’ distribution of Apache Derby
sun-java6-jdk – Sun Java(TM) Development Kit (JDK) 6
sun-java6-jre – Sun Java(TM) Runtime Environment (JRE) 6 (architecture independent files)
sun-java6-plugin – The Java(TM) Plug-in, Java SE 6
sun-java6-source – Sun Java(TM) Development Kit (JDK) 6 source files

Vemos que o sun-java está disponível no repositório Debian (obs: esta resposta foi para o Debian-6 (Squeeze).

e) verificar se o Open Java está disponível no repositório Debian
$ apt-cache search openjdk
default-jdk-doc – Standard Java or Java compatible Development Kit (documentation)
default-jdk – Standard Java or Java compatible Development Kit
default-jre-headless – Standard Java or Java compatible Runtime (headless)
default-jre – Standard Java or Java compatible Runtime
openjdk-6-dbg – Java runtime based on OpenJDK (debugging symbols)
openjdk-6-demo – Java runtime based on OpenJDK (demos and examples)
openjdk-6-doc – OpenJDK Development Kit (JDK) documentation
openjdk-6-jdk – OpenJDK Development Kit (JDK)
openjdk-6-jre – OpenJDK Java runtime, using Hotspot JIT
openjdk-6-jre-headless – OpenJDK Java runtime, using Hotspot JIT (headless)
openjdk-6-jre-lib – OpenJDK Java runtime (architecture independent libraries)
openjdk-6-source – OpenJDK Development Kit (JDK) source files

f) outras verificações sobre o repositório Debian

https://packages.debian.org/search?suite=all&section=all&arch=any&searchon=names&keywords=sun-java
https://packages.debian.org/search?suite=all&section=all&arch=any&searchon=names&keywords=openjdk
https://packages.debian.org/search?suite=all&section=all&arch=any&searchon=names&keywords=openjdk-7-jre

3. Instalar o Java da Sun
3.1 Para o Debian-7 e mais recentes
Para o Debian-7 (wheezy) e mais recentes, Sun Java não está mais disponível nos repositórios Debian (veja em Oracle/Sun Java).

Mas ainda assim é possível ter o Sun da Java no Debian-7, conforme mostraremos a seguir.

3.1.1 Baixar a versão amsi atual do Sun Java
A versão mais atual do Sun Java pode ser encontrada no sitio da Oracle em Java Platform – Standard Edition. Baixe a versão mais apropriada (se 32 bits/64 bits, JRE/JDK). Vamos exemplificar aqui para a versão 64 bits JDK.

De uma maneira direta utilizando a linha de comando para a versão Java-8 JDK:
$ wget --no-cookies --no-check-certificate --header "Cookie: oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.tar.gz"

3.1.2 Desempacotar
Desempacotar o arquivo JAVA 8 SDK baixado na pasta /opt:
# mkdir /opt/java-oracle
# tar -zxf jdk-8u5-linux-x64.tar.gz -C /opt/java-oracle/

3.1.3 Configurar o ambiente
Configurar o ambiente para que o JAVA 8 da Oracle possa ser utilizado no sistema, com a mais alta prioridade:

# JHome=/opt/java-oracle/jdk1.8.0_05/
# export JHome
# update-alternatives --install /usr/bin/java java ${JHome%*/}/bin/java 20000

# update-alternatives –config java
Obs: neste último comando, determinar a vesão do Oracle-8 instalado (caso haja mais de uma versão de Java instalada na máquina).

3.1.4 Verificar
utilize os dois comandos abaixos para sertificar-se que o Java-8 foi instalado com sucesso e é a versão java default em utilização na máquina.

$  update-alternatives --config java
Existem 3 escolhas para a alternativa java (disponibiliza /usr/bin/java).

  Selecção   Caminho                                         Prioridade Estado
------------------------------------------------------------
* 0            /opt/java-oracle/jdk1.8.0_05/bin/java            20000     modo automático
  1            /opt/java-oracle/jdk1.8.0_05/bin/java            20000     modo manual
  2            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      modo manual
  3            /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java   1051      modo manual

Pressione enter para manter a escolha actual[*], ou digite o número da selecção:

e

$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

3.2 Até o Debian-6 (Squeeze)
Até o Debian-6 (Squeeze), apenas era necessário ter o repositório non-free habilitado no arquivo de configurações de pacotes /etc/apt/sources.list para instalar o Sun Java. Assim, habilite o repositório non-free conforme abaixo:

deb http://ftp.br.debian.org/debian squeeze contrib non-free
deb-src http://ftp.br.debian.org/debian/ squeeze main non-free

Em seguida, atualizar o repositório:
# apt-get update

3.2.1 Fazer a instalação
Se houver uma interface gráfica, pode-se utilizar o Synaptic para fazer a instalação. Neste caso, marque para instalação:

sun-java6-bin
sun-java6-jre
sun-java6-plugin

PS: Java Plug-in permite que applets escritos nas especificações para a plataforma Java6 sejam executados no Mozilla e em outros browsers da web. Java Plug-in vem como o “Java Runtime Environment” (JRE).

Ou utilize o terminal:
# apt-get install sun-java6-jre sun-java6-plugin
obs: o segundo pacote só é necessário caso exista uma interface gráfica com navegador, para instalar o JVM do navegador.

3.2.2 Marcar para remoção completa o OpenJDK
Um maneira de verificar se o OpenJdk está instalado no sistema é pelo comando:
$ apt-cache policy openjdk* | grep Instalado -B 1 -A 3
openjdk-6-jre-lib:
Instalado: 6b27-1.12.5-1
Candidato: 6b27-1.12.5-1
openjdk-6-jre:
Instalado: 6b27-1.12.5-1
Candidato: 6b27-1.12.5-1
openjdk-6-jre-headless:
Instalado: 6b27-1.12.5-1
Candidato: 6b27-1.12.5-1

Pela resposta mostrada pelo sistema, a versão 6 do Openjdk está realmente instalada no sistema. Através do Synaptic, marque para remoção completa os seguintes pacotes:

default-jre
openjdk-jre
openjdk-6-jre-lib

3.2.3 Criar um link simbólico
O programa java será instalado em: /usr/lib/jvm/java-6-sun/jre/bin/java
Como este caminho está fora do PATH, vamos criar um link simbólico para ele dentro da pasta /usr/bin:
a) remova o link simbólico atual do java (atualmente tem java -> /etc/alternatives/java);
Isso pode ser visto através do seguinte comando:
# ls -lath java
Para remover este link simbólico, utilize o seguinte comando:
# rm java

b) crie um novo link simbólico:
# ln -s /usr/lib/jvm/java-6-sun/jre/bin/java java

3.2.4 Verificar a instalação
a) Verificar se java ativado e qual a versão
$ java -version

obtendo a seguinte resposta:

java version “1.6.0_22″
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) Client VM (build 11.2-b01, mixed mode, sharing)

Se isto acontecer, está tudo funcionando bem. Se você deseja apenas usar o Java, tudo já está configurado. No entanto se você deseja fazer programas em Java, será preciso executar procedimentos adicionais para instalar o JDK.

b) Certificar-se que o java está realmente instalado no sistema
Através do comando dpkg --get-selections. A ação “get-selections” faz com que seja enviado ao console a lista de pacotes instalados.

$ dpkg --get-selections | grep java
ca-certificates-java install
java-common install
java-wrappers install
javahelp2 install
:
:
:
sun-java6-bin install
sun-java6-jre install
sun-java6-plugin install
tzdata-java install

Aqui observa-se que o sun-java6 está instalado no sistema.

c) Certificar-se qual a instância java que está sendo utilizada no sistema
Utilize o comando Debian update-alternatives conforme abaixo, que possibilita criar, remover, manter e mostrar informações sobre links simbólicos. É possível que diversos programas que executam as mesmas funções ou funções similares estejam instalados em um único sistema, ao mesmo tempo. Por exemplo, muitos sistemas têm diversos editores de texto instalados ao mesmo tempo. Isso dá a escolha para os usuários de um sistema, permitindo que cada um use um editor diferente, se desejar.

# update-alternatives --config java

Existem 2 escolhas para a alternativa java (disponibiliza /usr/bin/java).

Selecção Caminho Prioridade Estado
————————————————————
* 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo automático
1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 modo manual
2 /usr/lib/jvm/java-6-sun/jre/bin/java 63 modo manual

Pressione enter para manter a escolha actual[*], ou digite o número da selecção:

Aqui neste exemplo, a instância java em uso seria o openjdk. Se desejar utilizar o sun-java6, digite “2″ na questão apresentada no terminal para fazer a mudança no link simbólico.

d) Verificar se existe processo ativo java

$ ps -A | grep java
 2243 ?        00:01:44 java

$ ps -ef | grep java
tomcat6   2243     1 11 11:01 ?        00:01:44 /usr/lib/jvm/java-6-sun//bin/java -Djava.util.logging.config.file=/var/lib/tomcat6/conf/logging.properties -Djava.awt.headless=true -Xmx128m -XX:+UseConcMarkSweepGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/share/tomcat6/endorsed -classpath /usr/share/tomcat6/bin/bootstrap.jar -Dcatalina.base=/var/lib/tomcat6 -Dcatalina.home=/usr/share/tomcat6 -Djava.io.tmpdir=/tmp/tomcat6-tomcat6-tmp org.apache.catalina.startup.Bootstrap start
antonio   2368  2334  0 11:16 pts/1    00:00:00 grep java

3.2.5 Definir a variável de ambiente JAVA_HOME de forma persistente
Considerando que o arquivo java esteja em /usr/lib/jvm/java-6-sun/jre/bin/java como fora mostrado acima, a definição da variável de ambiente JAVA_HOME deve ser feita da seguinte forma:

# JAVA_HOME=’/usr/lib/jvm/java-6-sun/’
# export JAVA_HOME

No entanto, esta definição não será vista no contexto dos usuários, bem como será perdida quando de nova iniciação da máquina. Para fazer com que esta definição seja permanente e visível por todos os usuários, disponibilize esta definição através do arquivo /etc/environment o qual é executado imediatamente após o boot da máquina. Acrescente ao final deste arquivo a seguinte linha:

export JAVA_HOME=/usr/lib/jvm/java-6-sun/

Para entender melhor:
Configurações de variáveis ​​de ambiente que afetam o sistema como um todo (em vez de apenas um usuário em particular) não devem ser colocadas em qualquer um dos muitos de nível de scripts de sistema que são executados quando o sistema ou a sessão de desktop são carregados, mas devem ser definidas em /etc/environment .

  • /etc/environment – este arquivo é especificamente concebido para ajustes do sistema de variáveis ​​de ambiente. Não é um arquivo de script, consiste em expressões de atribuição, um por linha. Especificamente, armazena as variáveis de ambiente que são exportadas para todo o sistema, mesmo sem carregar a interface gráfica ou qualquer login de usuário.

Não é recomendado:

  • /etc/profile – este arquivo é executado sempre que um shell de login do bash é iniciado (por exemplo, quando do login a partir do console ou ssh), bem como pelo “DisplayManager” quando da iniciação da sessão de desktop. No Debian, no entanto, esse arquivo faz pouco mais do que invocar o arquivo /etc/bash.bashrc.
  • /etc/bash.bashrc – esta é a versão de todo o sistema do arquivo ~/bashrc . O Debian é configurado por padrão para executar esse arquivo sempre que um usuário entra em um shell ou o ambiente de trabalho.

4. Instalar o OpenJDK
O principal objetivo do projeto OpenJDK é produzir uma implementação open-source do Java Platform SE (6 e 7). Para instalar o Java livre, desinstale qualquer versão do Java que já esteja instalada na máquina.

4.1 Instalar o Java Livre
# apt-get install openjdk-6-jre

4.2 Verificar a instalação
a) Versão do java instalado
$ java -version
java version “1.6.0_27”
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1~deb6u1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

b) Localização
$ which java
/usr/bin/java

Ou ainda com mais detalhes:
$ ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22 Mar 27 15:16 /usr/bin/java -> /etc/alternatives/java

c) Certificar-se qual a instância java que está sendo utilizada no sistema
# update-alternatives --config java
Existe apenas uma alternativa no grupo de ligação java: /usr/lib/jvm/java-6-openjdk/jre/bin/java
Nada para configurar.

4.3 Definir a variável de ambiente JAVA_HOME de forma persistente
Para o OpenJDK, a variável de ambiente java deve ser feita da seguinte forma:
# JAVA_HOME='/usr/lib/jvm/java-6-openjdk/'
# export JAVA_HOME

No entanto, esta definição não será vista no contexto dos usuários, bem como será perdida quando de nova iniciação da máquina. Para fazer com que esta definição seja permanente e visível por todos os usuários, disponibilize esta definição através do arquivo /etc/environment o qual é executado imediatamente após o boot da máquina. Acrescente ao final deste arquivo a seguinte linha:
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk/

Referências
1- Página de Download para o “sun-java6-jre_6-12-1_all.deb
2- Como instalar o Java
3- OpenJDK
4- Installing Oracle JAVA 7 on Debian Wheezy

comentários
  1. Renato Melo disse:

    Ótimo tutorial, me ajudOu bastante. vlw

  2. SBS disse:

    Obrigado pela dica, foi a melhor instrução encontrada.Muito facil sem trabalho algum.

Deixe um comentário, pois isto é muito motivante para continuarmos este trabalho

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s