Je sais que ce n'est pas vraiment une réponse à votre question concernant JAR/InputStream
. Mais ce qui suit peut être une solution alternative à ce que vous essayez d'atteindre. Voici un code qui va ajouter une URL à classpath.
Vous pouvez convertir un java.io.File
à URL
comme f.toURI().toURL()
/**
* Adds a URL to current classpath.
* @param url url
*/
public static void addURL(URL u) {
URLClassLoader sysloader = (URLClassLoader)ClassLoader.getSystemClassLoader();
try {
Method method = URLClassLoader.class.getDeclaredMethod("addURL",parameters);
method.setAccessible(true);
method.invoke(sysloader,new Object[]{u});
System.out.println("Dynamically added " + u.toString() + " to classLoader");
}
catch (Exception e) {
e.printStackTrace();
}
}