Neste pequeno tutorial você aprenderá a instalar o Java Development Kit 7 no linux Ubuntu. O JDK consiste no conjunto de ferramentas para desenvolvimento em Java.
Caso você não tenha acompanhado, publiquei recentemente em um tutorial sobre como instalar o Ubuntu numa máquina virtual. Esta é uma espécie de continuação da série de artigos que visa a configuração de um ambiente de desenvolvimento no Linux. Com esse ambiente, poderemos brincar livremente bom Big Data. Não perca este e os próximos capítulos! 😉
Instalando o JDK 7
Antes de mais nada vamos verificar se, por acaso, já não temos o JDK instalado. Abra o terminal e digite:
javac
Note a mensagem de que o programa não foi encontrado. O próprio Ubuntu nos dá uma dica do comando de instalação. Vamos aceitar a sugestão e instalar o pacote openjdk_7-jdk
. Digite o comando:
sudo apt-get install openjdk-7-jdk
O terminal irá solicitar a senha. Digite-a.
Depois ele vai pedir a confirmação da operação.
Pressione Y
para aceitar e aguarde o download e a instalação do pacote.
Vamos digitar novamente o comando javac
para verificar a instalação.
Pronto!
Onde está o Java?
Vamos agora conferir onde o Java foi realmente instalado. Para isso, no terminal, digite o comando abaixo para navegar até o diretório onde geralmente ficam as instalações do Java:
cd /usr/lib/jvm
Agora vamos listar os arquivos no diretório com o comando ls
:
Em nosso exemplo temos duas entradas: java-1.7.0-openjdk-amd64
e java-7-openjdk-amd64
.
Ué!? Mas não instalamos apenas uma versão do Java? Sim! Note que cada entrada tem uma cor diferente. O azul mais claro do primerio item indica que ele é um link simbólico (symbolic link), isto é, um simples um atalho. Vamos confirmar com o comando abaixo:
ln -li
Notou a seta que demonstra o link apontando para a pasta original?
Enfim, o Java foi instalado no diretório /usr/lib/jvm/java-7-openjdk-amd64
, como podemos ver na imagem a seguir:
Algumas configurações adicionais
Embora o Java já funcione apenas com a instalação realizada, vamos configurar as variáveis de ambiente para o caso de algum programa procurar o JAVA_HOME
.
Vamos novamente verificar se, por acaso, esta variável já existe usando o comando abaixo:
echo $JAVA_HOME
Nada. Então vamos defini-la em nossa sessão com o seguinte comando:
JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Em seguida, vamos exportar a variável para os demais programas com o comando export
:
export JAVA_HOME
Somente como observação, poderíamos ter feito os dois passos anteriores em apenas um comando da seguinte forma:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Agora vamos testar se a variável está correta:
echo $JAVA_HOME
Tudo certo até agora!
O problema é que o comando export
não salva a variável de forma permanente, ou seja, se reiniciarmos o computador (ou máquina virtual), perderemos seu valor. A fim de persisti-la e disponibilizá-la para todos os usuários, vamos criar um script que faz a exportação da variável durante a inicialização do ambiente e a torna disponível para todos os usuários do sistema.
Isso é feito com um Shell script no diretório /etc/profile.d
. Todos os scripts neste diretório são executados na inicialização.
Primeiro, vamos até o diretório mencionado:
cd /etc/profile.d
Para não complicar muito, vamos usar o editor nano
para criar um arquivo com permissão de administrador, então execute o seguinte comando:
sudo nano export_vars.sh
No editor, digite a linha abaixo:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
Em seguida, pressione CTRL+X
para sair do programa (Exit). Ele vai perguntar se você quer salvar o conteúdo. Pressione Y
e depois Enter
.
Pronto de novo!
O arquivo export_vars.sh
foi criado com sucesso. Podemos conferir o conteúdo com o comando cat
, da seguinte forma:
cat export_vars.sh
Para mais detalhes sobre variáveis de ambiente veja a documentação do Ubuntu.
Considerações finais
Este tutorial tem a intenção de prepará-lo para tópicos mais avançados.
Entretanto, procurei ser detalhado nos comandos utilizados também para que o leitor possa se ambientar no ambiente linux, ao invés de apenas digitar comandos “às cegas” sem compreender o que está fazendo.