KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Hello all and thanks for the attention! I have a problem that must both be easy and obvious, yet I am stuck. I want to deliver dynamically created Java classes to be used by a 3rd party library via a custom ClassLoader. Now my problem is: How do I set my custom ClassLoader to be used to load this classes when I do not load them directly myself? I thought when I used my ClassLoader to load a certain class, it became this class's ClassLoader, and all classes loaded from that class would be channeled through my ClassLoader. I created a custom ClassLoader, following this official tutorial: http://java.sun.com/developer/onlineTraining/Security/Fundamentals/magercises/ClassLoader/help.html . public class DynamicClassloader extends ClassLoader { private Map<String, Class<?>> classesMap = new HashMap<String, Class<?>>(); public DynamicClassloader(ClassLoader parent) { // Also tried super(parent); super(sun.misc.Launcher.getLauncher().getClassLoader()); } // Adding dynamically created classes public void defineClass(String name, Class<?> clazz) { classesMap.put(name, clazz); } @Override protected Class<?> findClass(String name) throws ClassNotFoundException { // load from parent Class<?> result = findLoadedClass(name); if (result != null) { return result; } try { result = findSystemClass(name); } catch (Exception e) { // Ignore these } if (result != null) { return result; } result = classesMap.get(name); if (result == null) { throw new ClassNotFoundException(name); } return result; } } I wanted to use this somewher
Tags (comma-separated)
Save Edits
Cancel