Bonjour,
j'essai de faire une methode qui exécute une classe située dans un jar. le .class est directement dans le jar ( pas de sous dossier).
avec le code ci dessous ai-je besoin de mofié le classpath ?

filename : "/path/monjar.jar"
classname : "myclass"

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
    public static void exec(String filename,String classname) throws IOException
    {
         try
             {
             URL tmpURL;
             Object[] objects = new Object[1];
             URLClassLoader[] loaders = new URLClassLoader[1];
             System.out.println("Loading 1 different classes "+"named: "+filename);
 
                 tmpURL = new File(filename).toURL();
                 System.out.println("\nLoading from: "+tmpURL);
                 loaders[0] = new URLClassLoader(new URL[] { tmpURL });
                 objects[0] = loaders[0].loadClass(classname).newInstance();
 
         } catch (Exception e) {
             e.printStackTrace();
         }
 
 
    }
le message d'erreur corespondant est:

Loading 1 different classes named: /PATH/TEMP.jar
Loading from: file:/PATH/TEMP.jar
java.lang.IllegalAccessException: Class util.ClassStarter2 can not access a member of class MainJarClass with modifiers ""
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at util.ClassStarter2.exec(ClassStarter2.java:41)
at appli.station.StationServerWaitForCollect$CollectionLauncher.handleFile(StationServerWaitForCollect.java:116)
at net.FileDownloadService.run(FileDownloadService.java:134)
je pense que l'erreur doit etre toute bete mais je vois pas ce que c'est :/
help me please