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

Langage Java Discussion :

Problème plugins et interfaces


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    382
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 382
    Par défaut Problème plugins et interfaces
    Bonjour, j'ai le code suivant pour lister les .jar dans un répertoire et voir pour chaque class les interfaces...

    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
     
        public void loadPlugins() throws IOException, ClassNotFoundException,
                InstantiationException, IllegalAccessException
        {
            File directory = new File("./plugins");
            if (directory.exists())
            {
                if (directory.isDirectory())
                {
                    for (File file : directory.listFiles())
                    {
                        URLClassLoader loader = new URLClassLoader(new URL[] { file
                                .toURL() });
     
                        JarFile jarFile = new JarFile(file.getAbsolutePath());
     
                        Enumeration<JarEntry> entries = jarFile.entries();
     
                        while (entries.hasMoreElements())
                        {
                            String name = entries.nextElement().toString();
                            if (name.length() > 6 && name.endsWith(".class"))
                            {
                                name = name.substring(0, name.length() - 6);
                                name = name.replaceAll("/", ".");
                                Class tmpClass = Class.forName(name, true, loader);
                                System.out.println(tmpClass);
                                for (Class interfaces : tmpClass.getInterfaces())
                                {
                                    System.out.println("\t\t" + interfaces.getName());
                                }
                            }
                        }
                    }
                }
                else
                {
                    directory.mkdir();
                }
            }
            else
            {
                directory.mkdir();
            }
        }
    Dans le répertoire plugins, je met un fichier .jar ( sans le .project et .classpath ). Pourtant dans mon .jar j'ai bien un fichier .class qui est le suivant :
    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
     
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    public class Main implements ActionListener
    {
     
        public void actionPerformed(ActionEvent e)
        {
            // TODO Auto-generated method stub
     
        }
     
     
    }
    D'ou viens le problème ?

    [EDIT]
    je viens de trouve le problème mais j'aimerais comprendre pourquoi ?
    En effet dans mon programme il y as déjà un fichier qui s'appel Main. Si le fichier principal de mon plugins à un autre nom ( Main -> TEST ) alors il n'y as plus de problème... Comment faire pour ne plus l'avoir ?

    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par défaut
    Dans un classloader deux classes ne peuvent pas avoir le même nom, donc il prend la première qu'il trouve. En général suivant l'ordre des jars

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/08/2008, 13h59
  2. [Plugin][VE]Interface graphique avec VE
    Par GENERYS dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/06/2005, 11h40
  3. Réponses: 1
    Dernier message: 08/03/2005, 15h19
  4. [Plugin / XML] Problème plugin Eclipse avec JDOM
    Par kiko_18 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 12/02/2005, 13h55
  5. [Eclipse] Plugins pour interface graphique
    Par Thomas Lebrun dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 07/01/2005, 16h59

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