Problem in thread "Thread-2" noClassDefFoundError
Bonjour à tous,
Je viens d'écrire un code qui utilisant des Threads. La compilation du code se passe bien et l'exécution sous éclipse aussi.
Mais une fois le jar exporté le code exécuté par le Thread lève une erreur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Exception in thread "Thread-2" java.lang.NoClassDefFoundError: WebInterface/Coor
donnÚesBalise
at WebInterface.HtmlParserEchos.getCours(HtmlParserEchos.java:79)
at DatasManager.DatasGetter.getDatas(DatasGetter.java:61)
at DatasManager.DatasManager.loadData(DatasManager.java:103)
at DatasManager.DatasManager.loadIndexCompo(DatasManager.java:70)
at DatasManager.DailyProcessor.run(DailyProcessor.java:27)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: WebInterface.CoordonnÚesBalise
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 6 more |
Voici le code de la classe utilisant le Thread:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
public class DailyProcessor implements Runnable{
private Thread th;
private static DatasManager dm = DatasManager.getInstance();
public DailyProcessor() { th = new Thread(this); }
public void start() { th.start(); }
public void attenteArret(){
try{ th.join(); }
catch(InterruptedException e){ Tracer.trace(Level.SEVERE,"Probleme lors de l'arrêt du Thread","attenteArret",this);}
}
public void run(){
while(true){
Calendar cal = Calendar.getInstance();
if( cal.get(Calendar.HOUR_OF_DAY) >= 18 && (cal.get(Calendar.HOUR_OF_DAY)<20 && cal.get(Calendar.MINUTE)<=30) ){
Tracer.trace(Level.INFO,"############## Chargement des cotations du jour ##############","run",this);
dm.loadIndexCompo();
try{ Thread.sleep(1000*60*60);
}catch(InterruptedException e){ Tracer.trace(Level.SEVERE,"Thread intérrompu","run",this); }
}
}
}
} |
Je ne parviens pas à comprendre la raison qui fait que tout s'exécute bien sous Eclipse mais pas lors de l'exécution du Jar exporté.
Autre chose, si ce code n'est pas placé dans un Thread celui-ci s'exécute correctement.
Merci d'avance