Я знаю, что это не совсем ответ на ваш вопрос относительно JAR / InputStream
.
Но следование может быть альтернативным решением того, чего вы пытаетесь достичь.
Вот некоторый код, который добавит URL к classpath.
Вы можете преобразовать java.io.File
в URL
как
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();
}
}