IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Exception dans un thread


Sujet :

avec Java

  1. #1
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Exception dans un thread
    slt à tous,je dispose de plusieurs formulaire :frame et une seule classe pour contrôler leurs actions. une exception de type
    java.lang.NoClassDefFoundError mes levé sur le flux et j'aimerais savoir comment je pourrais l'attraper.
    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
      //frame1
    	   public class A extends javax.swing.JFrame {
           public A () {
    	       initComponents();
              forme();
     
            }
            public void forme(){
    		  Controle controle= new Controle().getInstance();
    		  lire.addActionListener(controle);
    		  ecrire.addActionListener(controle);
    		  controle.enregistrerComposant(lire);
    		  controle.enregistrerComposant(ecrire);
    		  controle.enregistrerComposant(cup);
           }
     
    	   // Variables declaration - do not modify 
    	   //composant graphique et initialise dans  initComponents()
            public javax.swing.JPanel cup;
            public javax.swing.JButton ecrire;
            public javax.swing.JButton lire;
     
    		//....
    	 }
     
    	 //frame 2
    	  public class B extends javax.swing.JFrame {
    	     public static JCheckBox check=null;
    	    public B () {
    	        initComponents();     
    	         forme();
    	    }
    	    public void forme(){
    	        check=new JCheckBox();
    	        check.setName("check");
     
    	        Controle controle= new Controle().getInstance();
     
    	         //lien de redirection vers le controleur
    	        add.addActionListener(controle);
    	        update.addActionListener(controle);
    	        delete.addActionListener(controle);
    	        check.addActionListener(controle);
    	        controle.enregistrerComposant(add);
    	        controle.enregistrerComposant(update);
    	        controle.enregistrerComposant(delete);
    	        controle.enregistrerComposant(tabcontact);
    	        controle.enregistrerComposant(contactpanel);
     
    	   }	
    			// Variables declaration - do not modify                     
    		    public javax.swing.JButton add;
    		    public javax.swing.JPanel contactpanel;
    		    public javax.swing.JButton delete;
    		    public javax.swing.JTable tabcontact;
    		    public javax.swing.JButton update;
     
    			//...
     
    	   }
     
          //frame 3
     
    	   public class C extends javax.swing.JFrame {
           public C() {
            initComponents();
            forme();
           }
            public void forme () {
    			Controle controle =new Controle().getInstance();
    			 //chargement
    			  Reception.addActionListener(controle);
    			  contact.addActionListener(lcontrole);
    			  message.addActionListener(controle);
    			  deconnexion.addActionListener(controle);
    			  controle.enregistrerComposant(contact);
    			  controle.enregistrerComposant(Reception);
    			  lcontrole.enregistrerComposant(message);
    			  controle.enregistrerComposant(deconnexion);
    			  controle.enregistrerComposant(contenu_prin);
     
    			  //je crée ici des instances de A et B afin de leur enregistre également
       			  //dans  ma liste des composants et propager le contrôle de leur actions
    			  new A();
    			  new B();		  
             }
     
    		  // Variables declaration - do not modify
    			public javax.swing.JButton Reception;
    			public javax.swing.JButton contact;
    			public javax.swing.JTabbedPane contenu_prin;
    			public javax.swing.JButton deconnexion;
    			public javax.swing.JButton message;
    			// End of variables declaration
     
    			//....
        }
     
    	 // class controle
    	    public  class Controle implements  ActionListener {
            private ArrayList<Component> composantsEcoutes=null;
            private static  Controle instance=null;
            private JTabbedPane cont1;
            private JPanel cont2,cont3;
            public Controle(){
             Logger.getAnonymousLogger().info("Acquisition d'un listener");
             check=new JCheckBox();
     
            }
            public void actionPerformed(ActionEvent e) {
     
    		   //ici je recuperer le  JTabbedPane de C car je doit y ajouter des composants
    		   // en provenance de  A et B
    			for(int j=1;j<composantsEcoutes.size();j++) {
    				 if(composantsEcoutes.get(j).getName().equals("contenu_prin")){
    					cont1=(JTabbedPane)composantsEcoutes.get(j);
    					Logger.getAnonymousLogger().info("recuperation de  "+cont1.getName());
    				 }
    			 }
               Component evtSrc=(Component)e.getSource();
    			  if(composantsEcoutes.contains(evtSrc)){
    				 Logger.getAnonymousLogger().info("Évènement lancé"+e.getActionCommand()+" par: " +evtSrc.getName());
    				 if(evtSrc.getName().equals("Reception")){
    				 //action à realiser si l'on clique sur Reception depuis le frame C
    				 for(int j=1;j<composantsEcoutes.size();j++) {
    					if(composantsEcoutes.get(j).getName().equals("cup")){
    						 cont2=(JPanel)composantsEcoutes.get(j);
    						 Logger.getAnonymousLogger().info("recuperation de"+cont2.getName());
    					}
    				}
    				  cont1.add("Boite de reception",cont2);
    				 Logger.getAnonymousLogger().info("la page reception" +evtSrc.getName()+"est charge");
    				 }
                   }
     
               if(evtSrc.getName().equals("contact")){
    //                 for(int j=1;j<composantsEcoutes.size();j++) {
    				    if(composantsEcoutes.get(j).getName().equals("tabcontact")){
    					 cont3=(JPanel)composantsEcoutes.get(j);
    					  Logger.getAnonymousLogger().info("recuperation de"+cont3.getName());  
    					  }
    					} 
    				cont1.add("contacts",cont3);
    				Logger.getAnonymousLogger().info("la page mes contacts" +evtSrc.getName()+"est charge");
                 }
     
               if(evtSrc.getName().equals("message")){
    		   //idem
               }
    		   //.....
            }
           @SuppressWarnings("LoggerStringConcat")
    		public void enregistrerComposant(Component c) {
    			if(composantsEcoutes==null)composantsEcoutes=new ArrayList<Component>();
    			composantsEcoutes.add(c);
    			String nomDuComposant=c.getName();
    	                 System.out.println(nomDuComposant +" "+composantsEcoutes.size());
    		         Logger.getAnonymousLogger().info("composant ajouté à la liste d'écoute:"+nomDuComposant);
    		}
     
    		public final synchronized static Controle getInstance(){
    			if(instance==null) instance=new Controle();
    			return instance;
    		}
    		/....
         }
    cette exception est levé lorsque j'instancie A et B dans C
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                            new A();
    		        new B();
    une fois de plus excuse moi si vous trouver ce bout de code trop long j'ai fait l'effort de le réduire le mieux que je pouvais.
    alors toute aide,idée ou conseil serais la bien venus.
    a++

  2. #2
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Salut,

    "java.lang.NoClassDefFoundError" : La classe requise n'a pas été trouvée par la JVM. Cette erreur survient le plus souvent parce que la classe n'a pas été retrouvée avec le CLASSPATH utilisé. Ce n'est probablement pas un problème de code, mais surment un problème de configuration de ton JDK.
    Utilises tu des API spécifiques?

  3. #3
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Exception dans un thread
    slt à toi dit par API spécifique à quoi fait tu allusion

  4. #4
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Exception dans un thread
    non,j'utilise Netbeams 6.9
    ainsi comment faire pour mon problème si ce n'est pas lié au code.
    toute aide,assistance ou conseillé serais la bien venu.
    a++

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    La première chose à faire, c'est de nous donner le message d'erreur complet.

  6. #6
    Membre éclairé Avatar de pendoRa
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Mai 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 317
    Par défaut
    Salut,

    effectivement post l'erreur complète stp.

    Sinon une API spécifique, est pour moi une API qui n'a pas été développée par Java, mais qui à été conçue pour... au contraire d'une API standard par exemple.

  7. #7
    Membre très actif
    Inscrit en
    Novembre 2010
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 221
    Par défaut Exception dans un thread
    voici l'erreur qui mes retourné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: VIEW/A
            at VIEW.C.forme(C.java:77)
            at VIEW.C.<init>(C.java:39)
            at VIEW.C$2.run(C.java:347)
            at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
            at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    Caused by: java.lang.ClassNotFoundException: VIEW.A
            at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
            ... 11 more
    Notons qu'ici VIEW constitue le package dans lequelle sont définis mes vues A et B.
    ainsi toute aide,assistance ou conseil serais la bien venus
    a++

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    ben VIEW.A n'existe pas. Soit il n'a pas été compilé, soit il n'est pas au bon endroit dans le disque.
    A noter qu'il n'est pas recommander d'utiliser des majuscules dans les noms de packages.

  9. #9
    Membre très actif Avatar de JTABLE
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2011
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2011
    Messages : 164
    Par défaut
    salut
    je tu conseil du vérifier les path que tu utilise.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur indépendant
    Inscrit en
    Juillet 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 76
    Par défaut
    Attention avec la confusion minuscules/majuscules dans les noms de packages et de classes. Windoze ne fait pas la différence, mais Java si. Ça peut expliquer l'erreur.

Discussions similaires

  1. Gérer les exceptions dans un thread
    Par Pynouz dans le forum C#
    Réponses: 5
    Dernier message: 06/10/2011, 12h29
  2. Récupération d'une exception dérivée dans un thread
    Par Baccs dans le forum Threads & Processus
    Réponses: 4
    Dernier message: 22/08/2008, 15h55
  3. [C#] Exception dans un thread
    Par padodanle51 dans le forum C#
    Réponses: 3
    Dernier message: 02/07/2007, 13h26
  4. Exception dans un thread puis NullException
    Par Nasky dans le forum Concurrence et multi-thread
    Réponses: 3
    Dernier message: 17/03/2007, 19h18
  5. Réponses: 2
    Dernier message: 28/08/2003, 00h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo