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

Java Discussion :

Echec du test de l'existance d'une classe


Sujet :

Java

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut Echec du test de l'existance d'une classe
    Hello,

    J'ia une application JAVA sous forme de .jar que j'ai construit via netbeans. Cette application utilise un certain nombre de librairies (.jar) dont certaines sont optionelles et utilisées uniquement si elles sont dans le classpath.

    Pour tester leur présence justement, j'utilise le bout de code suivant (pour une classe utilisant cette librairie optionelle):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    public static boolean canBeUsed() {
            try{
                    Class.forName("chemaxon.marvin.beans.MViewPane");
            }
            catch (ClassNotFoundException ex) {
                    return false ;
            }
            return true ;
    }
    Mon problème est que je n'arrive pas a catcher l'exception, et que java me renvoi à chaque fois l'exception suivante:
    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: chemaxon/marvin/beans/MViewPane
    at mylib.core.gui.view.Viewer.updateComponents(SimpleViewer.java:134)
    (...)
    Caused by: java.lang.ClassNotFoundException: chemaxon.marvin.beans.MViewPane
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    ... 30 more
    SimpleViewer.java:134 représente la ligne appelant la méthode statique présentée au dessus à partir d'une autre classe.

    Je précise que j'ai construit mon jar en présence de la librairie optionelle sous netbeans, et que j'ai lancé mon programme sans cette librairie pour tester justement que tout fonctionne.

    Quelqu'un at-il une idée de ce que j'ai pu faire de mal?

    Merci d'avance :

  2. #2
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    l'exception lancée est un NoClassDefFoundError, pas un ClassNotFoundException

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    491
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 491
    Points : 172
    Points
    172
    Par défaut
    Oui c'est bien le problème, ca n'est pas catchable (à ma connaissance et selon mes tests).

    J'ai trouvé la solution: il faut définir cette méthode canBeUsed ailleurs que dans les classe utilisant les package optionels.

  4. #4
    Expert éminent sénior
    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
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par vinzzzz Voir le message
    Oui c'est bien le problème, ca n'est pas catchable (à ma connaissance et selon mes tests).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try{
    } catch (NoClassDefFoundError e){
       // classe existe pas
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] test de l'existence d'une variable dans une liste
    Par Cedric G dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/10/2014, 17h20
  2. Test de l'existence d'une relation 1-0..1
    Par fm424946 dans le forum Doctrine2
    Réponses: 7
    Dernier message: 07/11/2011, 08h23
  3. [XL-2000] Test de l'existence d'une zone nommée
    Par crashtib dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2010, 19h24
  4. test de l'existence d'une session ?
    Par MorganStern dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2007, 11h13
  5. [VBA-E]Test de l'existence d'une propriété
    Par extase dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2007, 19h32

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