methode pour exécuter une class dans un jar
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:
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:
Citation:
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:cry: