2013-02-23 14 views
7

Ho lavorato a un programma che utilizza l'API Javamail per inviare e-mail in base a eventi temporali ea determinate condizioni. Il programma funziona perfettamente in Eclipse (la versione più recente) e i javamail e i jar attivatori si trovano nel percorso di generazione, così come le dipendenze di javamail. Il problema si verifica quando esporto il progetto come jar e cerco di eseguirlo. (La traccia di stack generata è la stessa che sarebbe se il javamail jar fosse mancante dal percorso di build di Eclipse).java.lang.NoClassDefFoundError: javax/mail/MessagingException

L'analisi dello stack è la seguente:

`Exception in thread "Timer-1" java.lang.NoClassDefFoundError: javax/mail/MessagingException 
at SpaceCheck.HourlySpaceAlerts(SpaceCheck.java:212) 
at WarningReports.run(WarningReports.java:21) 
at java.util.TimerThread.mainLoop(Unknown Source) 
at java.util.TimerThread.run(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: javax.mail.MessagingException 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 4 more` 

Grazie per il vostro aiuto.

+0

si può provare l'esportazione in vaso con includere tutta l'opzione dipendenze. – devang

+0

Ho selezionato "Esporta file di classe e risorse" selezionati, sarebbe l'opzione corretta? – user2101299

+0

hai trovato una soluzione rapida per questo? –

risposta

11

supponendo che si mette javamail e altre dipendenze a lib/ cartella relativa al vostro vaso esportato, si deve dichiarare quei vasi in file manifesto:

Class-Path: lib/javamail.jar 
+0

Purtroppo l'ho già fatto, inutilmente. – user2101299

+0

Grazie per il suggerimento però, è stato bello. – user2101299

Problemi correlati