| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 04:55:57
|
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 06:51:15
|
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).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 09:20:51
|
RafaelVS
JavaEvangelist
![[Avatar]](/images/avatar/50454f95bbf5e6478cc0a55d08338731.jpg)
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%) |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 13:32:05
|
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...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 13:42:35
|
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:
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 14:09:09
|
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 14:13:24
|
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.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 14:15:36
|
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 :(
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 15:19:37
|
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...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/07/2007 23:17:12
|
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...
|
|
|
 |
|
|