Java no Linux

8 respostas
euripedes_jr

Olá pessoal tudo bom???

Eu instalei o JDK e JRE normal no Linux, mando compila na mao as classes e elas são compiladas, mas quando vou executar aparece a seguinte msg “Exception in thread “main” java.lang.NoClassDefFoundError: MeuPrograma” eu sei q quando aparece essa msg o problema e a variavel CLASSPATH só que ela esta setada:

VARIAVEIS

ejunior@ejunior:~$ echo $JAVA_HOME
/opt/java/jdk1.5.0_15
ejunior@ejunior:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/java/jdk1.5.0_15/bin
ejunior@ejunior:~$ echo $CLASSPATH
/opt/java/jdk1.5.0_15/lib
ejunior@ejunior:~$ echo $MANPATH
:/opt/java/jdk1.5.0_15/man

ERRO

ejunior@ejunior:~/classes_java$ java MeuPrograma
Exception in thread “main” java.lang.NoClassDefFoundError: MeuPrograma
ejunior@ejunior:~/classes_java$

Bom pesquesei e consigo executar as classes somente assim “java -cp . sua classe”.

Alguem sabe oq pode estar faltando???

t+++
obrigado!!!

8 Respostas

tecnocrata

amigo vc adicionou o diretorio aonde esta seu jdk ao seu /home/seudiretorio/.bashrc ??? vc tem duas opcoes ou adiciona a este arquivo e exporta ou adiciona ao /etc/profile
Ex: adicionando ao /etc/profile

#set the default java home
JAVA_HOME="/usr/java/"
export JAVA_HOME

qlq coisa posta ai ;p

ps : mostra qual eh sua saida ao comando java -version

euripedes_jr

entao no /etc/profile já tinha colocado:

#SETANDO AS VARIAVEIS JAVA
JAVA_HOME=/opt/java/jdk1.5.0_15
export JAVA_HOME

PATH=$PATH:$JAVA_HOME/bin
export PATH

CLASSPATH=$JAVA_HOME/lib
export CLASSPATH

MANPATH=$MANPATH:$JAVA_HOME/man
export MANPATH

umask 022

T

O pessoal sempre usa o comando “java QualquerCoisa” mas na verdade é necessário especificar também no classpath o diretório onde estão SUAS classes. Se suas classes foram compiladas para algum subdiretório do diretório corrente, basta fazer:

java -cp . MeuPrograma

euripedes_jr

Entao só para ver se eu entendi.

Tipo meu JDK esta no diretorio “opt/jdk…” mas minhas classes esta no diretorio “/home/ejunior” para eu conseguir executar as classes preciso informar no CLASSPATH o meu diretorio “/home/ejunior”??? E outra qual e o padrao dos diretorios no Linux para o JDK e as classes???

tecnocrata

isso , isso acaba passando batido pq devido ao uso de IDEs ai qndo vamos fazer “na unha” acabamos por esquecer ;p

euripedes_jr

e isso mesmo fera. Testei aqui e agora rodou numa boa.

Valeu obrigado!!!

pedrotaek

tecnocrata:
amigo vc adicionou o diretorio aonde esta seu jdk ao seu /home/seudiretorio/.bashrc ??? vc tem duas opcoes ou adiciona a este arquivo e exporta ou adiciona ao /etc/profile
Ex: adicionando ao /etc/profile

#set the default java home
JAVA_HOME="/usr/java/"
export JAVA_HOME

qlq coisa posta ai ;p

ps : mostra qual eh sua saida ao comando java -version

amigo nesse caso tenho q editar em um script, ou seja, vou alterar um scripit, não me recordo qual script acrescento esse código. Sou novo no linux! Não me recordo tbm o nome desse script q devo editar, gostaria de instruções detalhadas a respeito disso, pois segui um manual q achei na internet, fiz as configurações de acordo instalei com sucesso, porém todo o restante do meu sistema começou a ficar “louco” e tive que reinstalar-lo.

tecnocrata

isso vc tem q editar e adicionar o diretorio do seu jdk aos arquivos por exemplo
vi /etc/profile
ou
pico /etc/profile

Lembrando q vc pode adicionar seu java home a outros arquivos , por exemplo se vc quiser q seu java home seja setado apenas para um determinado usuario :
vi /home/seuDiretorioHome/.bashrc
e adiciona a linha com o diretorio java
Para testar se as configuracoes funcionaram , reinicie o shell e digite java -version ou entao o comando env q lista as variaveis de ambiente .

abracos

Criado 16 de junho de 2008
Ultima resposta 18 de jun. de 2008
Respostas 8
Participantes 4