Em que parte é gerado exception?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
RaphaelSantos
JavaGuru

Membro desde: 05/11/2006 02:51:13
Mensagens: 201
Offline

Pessoal, em que parte do codigo é gerado exception por falta de uma lib externa???

tipo, configuro o class-path: lib/my_lib.jar
porem o usuario apaga e quando o mesmo for executar o programa, levantar um JOptionPane avisando que esta faltando a tal lib??
no meu caso eu uso jakarta mail
ZehOliveira
GUJ Ranger

Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline

A exceção é lançada quando se tenta usar a classe que está faltando. Uma solução é capturar a NoClassDefFoundException, que é a exceção lançada quando não se acha determinada classe (típico erro de jar não encontrado).
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline

além de NoClassDefFoundException, tb tem ClassNotFoundException, mas não lembro a diferença em que um das duas é lançada e em que circunstâncias.

- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
RaphaelSantos
JavaGuru

Membro desde: 05/11/2006 02:51:13
Mensagens: 201
Offline

certo, mas onde, no codigo, eu poderia fazer isso?
tentei fazer try catch em um monte de parte mas nao aparece a mensagem...
coloquei no main

coloquei no metodo initialize()

, tb tentei no getJContentPane(); porem em todos, qdo tento executar sem colocar a lib aparece a mensagem could not find the main class. Program will exit...

thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Dica: se você realmente acha que seu usuário é cabeça suficiente para rodar sua aplicação sem ter algum dos jars necessários, você precisa fazer o seguinte:

No seu programa principal, antes mesmo de apresentar qualquer tela, você tenta instanciar (usando Class.forName), para cada jar que você sabe que é necessário, uma classe presente nesse jar. Se por acaso você receber uma ClassNotFoundException, você já trata antes de tudo (antes mesmo de chamar seu frame principal).

Exemplo: digamos que você precise de activation.jar e mail.jar. Você sabe que uma classe que existe em activation.jar é javax.activation.DataHandler e uma classe que existe em mail.jar é javax.mail.Message.

Faça então algo parecido com:
[WWW]
RaphaelSantos
JavaGuru

Membro desde: 05/11/2006 02:51:13
Mensagens: 201
Offline

thingol, ja tou enchendo o saco ne
bom, o que é e como e quando se usa esse formato Class?

sobre seu exemplo, funcionou, funcionou bem ate d+
minhas libs estao numa pasta lib e eu coloquei

ai o programa sempre levanta a excessao mesmo a lib estando la
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Class.forName pede um nome de classe, uai (como mostrei). Que mania é essa de mudar o exemplo? Não pus nenhum "lib" lá, e não é para pôr nenhum "/lib". Se tiver dúvida, consulte o javadoc da classe java.lang.Class.
[WWW]
RaphaelSantos
JavaGuru

Membro desde: 05/11/2006 02:51:13
Mensagens: 201
Offline

thingol wrote:Class.forName pede um nome de classe, uai (como mostrei). Que mania é essa de mudar o exemplo? Não pus nenhum "lib" lá, e não é para pôr nenhum "/lib". Se tiver dúvida, consulte o javadoc da classe java.lang.Class.

eu mudei pq inicialmente, do jeito que vc psotou nao pegou tb...ai pensei que poderia ser por causa da pasta.. mas ja fiz um monte de combinação tentando colocar inclusive o jar completo como activation.jar e nenhum caso ele passa do try :(
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Hum, o exemplo que dei tinha um furo, é para usar:


em vez de


Acho que li a página errada do manual de mágicas de Hogwarts...
[WWW]
RaphaelSantos
JavaGuru

Membro desde: 05/11/2006 02:51:13
Mensagens: 201
Offline

thingol wrote:Hum, o exemplo que dei tinha um furo, é para usar:


em vez de


Acho que li a página errada do manual de mágicas de Hogwarts...

vlw thingol... funcionou blz para algumas libs...pro activation nao funfou mas ja ajuda...vlw mesmo...
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team