Fórum Ubuntu Linux - PT

Suporte Técnico => Sistema => Tópico iniciado por: vinnyparker em 15 de Setembro de 2010, 19:44

Título: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 15 de Setembro de 2010, 19:44
Seguinte. eu instalei aqui o jdk 1.6.0_21. e setei a variavel de ambiente em /etc/bash.bashrc.
esta da seguinte forma:

Código: [Selecionar]

#---------------------------------------------------------------------------------------------------------------

export JAVA_OPTS="-Xmx1000m -XX:MaxPermSize=256m"
export JAVA_HOME=/opt/jdk-1.6.0.21
export JRE_HOME=/opt/jdk-1.6.0.21/jre
export ANT_HOME=/home/vinny/prog/apache-ant-1.8.0
export GLASSFISH_HOME=/home/vinny/prog/glassfishv3
export FIREBIRD_HOME=/opt/firebird
export POSTGRESQL_HOME=/opt/PostgreSQL/8.4
#export ZZPATH_DFT="/usr/bin/funcoeszz

export PATH=${PATH}:${JAVA_HOME}/bin
export PATH=${PATH}:${ANT_HOME}/bin
export PATH=${PATH}:${GLASSFISH_HOME}/bin
export PATH=${PATH}:${FIREBIRD_HOME}/bin
export PATH=${PATH}:${POSTGRESQL_HOME}/bin

#---------------------------------------------------------------------------------------------------------------

mas quando e dou um java -version ele diz que nao exite.
so funcionou depois que eu intalei pela central de programas do ubuntu.
até ai, td bem
ai eu instalei o glassfish, e o proprio glassfish achou a minha instalacao do java em opt (/opt/jdk-1.6.0.21)

a pergunta é:
Porque o proprio ubuntu nao reconhece isso?

antes que sugiram,
ja coloquei essa mesma configuracao em /etc/profile, em ~/.profile, em ~/.bash_bashrc,
e naaaada.

alguem me explica ae, pq em outras distro de linux, eu ponho as variaveis de ambiente em /etc/profile, e funciona....
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: Felix em 15 de Setembro de 2010, 19:49
Talvez porque no Ubuntu o local seria em:

~/.bashrc

Pressupondo que você saiba que ~/ é a pasta home do usuário...
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: zekkerj em 15 de Setembro de 2010, 19:51
Explicando... esses arquivos onde vc testou são lidos antes da máquina abrir a sessão gráfica. Se vc estivesse usando via sessão de texto, ou via acesso remoto, acredito que qualquer um deles teria sido lido.

Vc não chegou a reiniciar a máquina após fazer essa mudança, não?
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 15 de Setembro de 2010, 19:51
Talvez porque no Ubuntu o local seria em:

~/.bashrc

Pressupondo que você saiba que ~/ é a pasta home do usuário...

ja fiz isso irmao e nao funcionou nao
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 15 de Setembro de 2010, 19:54
Explicando... esses arquivos onde vc testou são lidos antes da máquina abrir a sessão gráfica. Se vc estivesse usando via sessão de texto, ou via acesso remoto, acredito que qualquer um deles teria sido lido.

Vc não chegou a reiniciar a máquina após fazer essa mudança, não?

ja fiz isso sim, amigo, eu uso linux ha 4 anos, e eu fui obrigado a migrar para ubuntu pq da politica da empresa.
a distro que eu usava antes funciona.
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: zekkerj em 15 de Setembro de 2010, 20:24
Citar
a distro que eu usava antes funciona.
E qual seria?
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 16 de Setembro de 2010, 09:22
Citar
a distro que eu usava antes funciona.
E qual seria?


Sabayon Linux, mas como eu disse antes, pela politica da empresa tive de migrar para ubuntu
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: zekkerj em 16 de Setembro de 2010, 12:00
Isso se deve a diferenças na versão do Bash utilizada.

Mas vc mesmo pode fazer o "link" entre o arquivo oficial (~/.bashrc) e o usado no Sabayon (bash.bashrc), basta colocar a linha abaixo no fim do "~/.bashrc":

. /etc/bash.bashrc
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 16 de Setembro de 2010, 18:01
Isso se deve a diferenças na versão do Bash utilizada.

Mas vc mesmo pode fazer o "link" entre o arquivo oficial (~/.bashrc) e o usado no Sabayon (bash.bashrc), basta colocar a linha abaixo no fim do "~/.bashrc":

. /etc/bash.bashrc

Entendo, eu posso fazer o mesmo com o /etc/profile?
pq no sabayon eu fiz td isso nesse arquivo
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: zekkerj em 17 de Setembro de 2010, 00:42
Poder, pode. Mas, supondo que vc vai continuar usando Ubuntu, já que é política de sua empresa, não seria melhor passar a usar a forma usada no Ubuntu? Pq senão, toda máquina que vc for trabalhar, vai ter que repetir esses comandos...
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: rg.oliveira em 17 de Setembro de 2010, 08:32
Eu costume realizar essas configurações de variáveis de ambiente no arquivo /etc/profile. Não dá nenhum problema. Inclusive minha JDK está configurada e funcionando perfeitamente.
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 17 de Setembro de 2010, 09:24
Eu costume realizar essas configurações de variáveis de ambiente no arquivo /etc/profile. Não dá nenhum problema. Inclusive minha JDK está configurada e funcionando perfeitamente.

pois entao Rg.Oliveira, minhas variaveis estao la. todas as outras variaveis de ambiente etao funcionando, Glassfish, PostgreSql, Firebird... so a do jdk que nao lê.
O glassfish detectou o jdk..._21 mas o ubuntu so reconhece a do repositorio. se eu desinstalar, ele nao reconhece nenhum...
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: rg.oliveira em 17 de Setembro de 2010, 11:29
Será que não está acontecendo um conflito nas instalações? Na minha máquina eu não instalei a do distribuição, apenas a da Sun. Realizei a seguinte configuração no final do /etc/profile:

JAVA_HOME=/usr/local/java
CLASSPATH=.:
PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH

Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: zekkerj em 17 de Setembro de 2010, 12:05
Citar
Será que não está acontecendo um conflito nas instalações?
Pensei nisso também... se o sistema estiver tentando definir as mesmas variáveis com outro valor, vai valer o que foi acionado por último...

Confirme então se essas variáveis estão indefinidas, ou com valor diferente do que você espera...
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: vinnyparker em 17 de Setembro de 2010, 14:58
Citar
Será que não está acontecendo um conflito nas instalações?
Pensei nisso também... se o sistema estiver tentando definir as mesmas variáveis com outro valor, vai valer o que foi acionado por último...

Confirme então se essas variáveis estão indefinidas, ou com valor diferente do que você espera...

A ultima instalação foi a que eu fiz, e nao esta lendo. Entao eu nao acredito que seja isso nao.......
Título: Re: pq o ubuntu 10.04 nao le a variavel de ambiente do java??
Enviado por: cesargcomp em 17 de Setembro de 2010, 16:30
Eu tinha instalado o java assim. Usando o repositório partner.
$ sudo echo deb http://archive.canonical.com/ubuntu lucid partner  >> /etc/apt/sources.list
$ sudo echo deb-src http://archive.canonical.com/ubuntu lucid partner >> /etc/apt/sources.list
$ sudo apt-get install -y sun-java6-jre
$ sudo echo sun-java6-jre shared/accepted-sun-dlj-v1-1 select true | sudo /usr/bin/debconf-set-selections
$ sudo apt-get install -y sun-java6-plugin sun-java6-fonts

Eu removi - versão final 20
$ sudo apt-get --purge remove sun-java6-jre sun-java6-plugin sun-java6-fonts

# atualizando via site java.com
# criar pasta, baixar o java e dar permissão de execução
$ sudo mkdir -p /opt/java/source/
$ cd /opt/java/source/
$ sudo wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=40907
$ sudo mv AutoDL?BundleId=40907 jre-6u21-linux-i586.bin
$ chmod a+x jre-6u21-linux-i586.bin
$ cd /opt/java
# aceitar licença do java automaticamente
$ sudo echo sun-java6-jre shared/accepted-sun-dlj-v1-1 select true | sudo /usr/bin/debconf-set-selections
# instalar java
$ sudo source/jre-6u21-linux-i586.bin
# dizemos ao sistema que temos uma nova versão do java
$ sudo update-alternatives --install "/usr/bin/java" "java" "/opt/java/jre1.6.0_21/bin/java" 1
# colocamos a nova versão como padrão
$ sudo update-alternatives --set java /opt/java/jre1.6.0_21/bin/java
# fazendo backup do java anterior
$ cd /usr/lib/mozilla/plugins
$ sudo mv libjavaplugin_oji.so libjavaplugin_oji.so.bak
$ sudo mv libnpjp2.so libnpjp2.so.bak
# estabelecendo links com o java
$ sudo ln -s /opt/java/jre1.6.0_21/plugin/i386/ns7/libjavaplugin_oji.so
$ sudo ln -s /opt/java/jre1.6.0_21/lib/i386/libnpjp2.so
$ java -version

O segredo está nas linhas em vermelho.

Espero ter ajudado!

OBS: Achei que haveria a necessidade de remover o openjdk (icedtea) mas no caso tenho os dois na máquina pois o jdownloader me fez o favor reinstalar. Mas ao digitar java -version, olha o que aparece:
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)