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:
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:
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