Instalando o Java da SUN em seu Linux
Hoje vou ensinar um procedimento simples, mas bastante útil para os que assim como eu preferem instalar o Java que fica disponível no site http://java.sun.com/. A versão instalada será a JDK 1.6.0_13.
1) Após efetuar o download, entre no diretório onde salvou o arquivo e o torne executável:
root@slackware ~# chmod +x jdk-6u13-linux-i586.bin
Agora vamos executá-lo:
root@slackware ~# ./jdk-6u13-linux-i586.bin
Será exibida a licença do Java, pressione a tecla “q” e em seguida digite “yes” (se você quiser aceitar a licença claro
). Nesse ponto o java será descompactado. Ao final será solicitado que você tecle “Enter”.
Vamos criar um diretório em /usr para armazenar o nosso Java:
root@slackware ~# mkdir /usr/java
Agora vamos mover o java para lá:
root@slackware ~# mv jdk1.6.0_13 /usr/java/.
2) Criando as variáveis ambientes do Java:
Agora vamos criar o “profile” do java inserindo nele o conteúdo a seguir:
root@slackware ~# vi /etc/profile.d/java.sh
#!/bin/bash
#
# Configuracoes do Ambiente Java no Linux
#
# Autor: Wagner Santos
# wagner@dotlinux.net
JAVA_HOME=”/usr/java/jdk1.6.0_13″
JRE_HOME=”$JAVA_HOME/jre”
CLASSPATH=”$JAVA_HOME:$JAVA_HOME/lib:$JRE_HOME/lib:.”
MANPATH=”$MANPATH:$JAVA_HOME/man”
JAVA_DOC=”$JAVA_HOME/docs”
PATH=”$JAVA_HOME/bin:$JRE_HOME/bin:$PATH”
export JAVA_HOME JRE_HOME CLASSPATH MANPATH JAVA_DOC PATH
Salve o arquivo e o dê a permissão de executável:
root@slackware ~# chmod +x /etc/profile.d/java.sh
Prontinho! Agora efetue um logout e um novo login no sistema, que já estará pronto para a utilização do Java!
Time zone x Linux x Java
Esta semana tive uma desagradável surpresa em meus servidores Linux que rodam aplicações Java. Como todo ano, o Brasil entra em horário de verão e oficialmente até o ano passado era o dia 12 de outubro. Sendo assim, desavisado sobre meu ambiente de produção que está localizado em São Paulo e foi instalado pelos administradores do data-center paulistano e que selecionaram na hora da instalação do sistema operacional o fuso-horário “America/São Paulo” e não “America/Recife” que é a cidade onde a empresa está sediada.
Na segunda-feira a surpresa, todas as lojas pegaram o famoso “horário de verão” então lá fomos nós setar os horários nos servidores mas não basta só isso, afinal quando acabar o horário de verão os servidores iriam atrasar em 1h. Porém tivemos a desgradável surpresa de que a Java Virtual Machine (JVM) ignora a hora do computador. Embora o horário “estivesse” correto a JVM adiantava em 1h, pesquisando descobrimos que a JVM usa o fuso para ajustar o relógio interno e ignora a hora da BIOS/Sistema Operacional.
Primeiro foi necessário setar o fuso do Sistema Operacional de forma correta. Em nosso ambiente de testes que roda CentOS 5.2 e 4.3 resolvemos com o “zic” através do comando:
# zic -l America/Recife
Lembrando que aqui você poderia colocar o seu fuso.
Já em produção temos Redhat 4 EL. Então o “zic” estava nos retornando o erro abaixo:
# zic -l America/Recife
“command line”, line 1: warning: hard link failed, symbolic link used
Então mais um pouco de pesquisa descobri que o Redhat tem um utilitário chamado “dateconfig” para configuração do fuso.
# dateconfig
Selecione seu fuso e dê Ok.
Lembrando que: Para fazer isso em produção pare os serviços da máquina, pois poderá afetar as suas aplicações que utilizam data/hora do servidor.