Я пытаюсь загрузить класс из jar, я использую classLoader.Загрузить класс из jar
У меня есть эти части кода для подготовки ClassLoader:
private void loadClass(){
try{
JarFile jarFile = new JarFile(Path);
Enumeration e = jarFile.entries();
URL[] urls = { new URL("jar:file:" + Path +"!/") };
classLoader = URLClassLoader.newInstance(urls);
} catch (MalformedURLException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Теперь я загрузить класс, и я стараюсь, чтобы получить новый экземпляр
....
loadClass();
Class device = classLoader.loadClass("org.myPackage.MyClass");
MyMotherClass Device = (MyMotherClass) device.newInstance();
...
MyClass проходит от MyMotherClass, и когда Я делаю classLoader.loadClass ("org.myPackage.MyClass"), MyMotherClass находится в classLoader. На данный момент, все в порядке.
сейчас, в device.newInstance(), я получаю исключение. Проблема в том, что другие классы, используемые MyClass, не входят в путь к классам.
Что я могу сделать?
У меня есть другой метод, который загружает все необходимые классы в classLoader, но не работает, когда я получаю новый экземпляр. Я не могу изменить MyClass и другие
Можете ли вы изменить настройки класса пути перед запуском JVM? – Bathsheba
Это вам поможет? http://stackoverflow.com/questions/402330/is-it-possible-to-add-to-classpath-dynamically-in-java –
@Bathsheba Нет, я не знаю, что банка должна быть загружена , Имя, которое оно создает во время выполнения – Clonw