Загрузите класс, который реализует другой - Java - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь загрузить некоторые классы динамически, получая их байты и используя отражение, чтобы использовать метод defineClass.Вот мой код (это цикл)

Method m = java.lang.ClassLoader.class.getDeclaredMethod("defineClass", String.class, byte[].class, int.class, int.class);
            m.setAccessible(true);
            m.invoke(Main.class.getClassLoader(), className, classBytes, 0, classBytes.length);

Но когда класс реализует другой, он выдает NoClassDefFoundError (реализованный класс еще не загружен).Я не знаю, как это сделать, я пытался загрузить несколько раз, чтобы решить эту проблему, но это не работает.Я также искал, чтобы добавить все классы в путь к классам перед их загрузкой, но я не знаю, как это сделать с массивом байтов.

1 Ответ

0 голосов
/ 16 декабря 2018

Динамический загрузчик классов - это то, что делает Java.Не должно быть необходимости обходить ограничения на доступ к языку.Подкласс SecureClassLoader обычным способом.

...