Нужно написать клас лоадер который бы загружал класы из указанной директории Вот мой клас лоадер...
| Код | public class PathClassLoaderClass extends ClassLoader { private String path;
public PathClassLoaderClass() { }
@Override protected Class findClass(String className) throws ClassNotFoundException { try { byte[] bytes = getBinaryClass(className); Class result = defineClass(className, bytes, 0, bytes.length); return result; } catch (IOException e) { throw new ClassNotFoundException(); } }
private byte[] getBinaryClass(String className) throws ClassNotFoundException, IOException { FileInputStream in = null; try { String fname = getPath() + File.separator + className + ".class"; File classFile = new File(fname); System.out.println(fname); if (!classFile.exists()) { throw new ClassNotFoundException(); } in = new FileInputStream(classFile); byte[] bytes = new byte[in.available()]; System.out.println(bytes.length); in.read(bytes); return bytes; } finally { if (in != null) { in.close(); } } }
public String getPath() { return path; }
public void setPath(String path) { if (path == null) { throw new NullPointerException(); } this.path = path; } }
|
Выдает ошибку при вызове defineClass() хотя масив байто класа я получаю... Что я делаю не так? |