Я хочу загрузить класс, который не находится в пути к классам. Есть ли способ загрузить класс по пути к файлу, не находясь в пути к классам? например
ClassLoader.load("c:\MyClass.class");
Пример взят из здесь :
// Create a File object on the root of the directory containing the class file File file = new File("c:\\myclasses\\"); try { // Convert File to a URL URL url = file.toURL(); // file:/c:/myclasses/ URL[] urls = new URL[]{url}; // Create a new class loader with the directory ClassLoader cl = new URLClassLoader(urls); // Load in the class; MyClass.class should be located in // the directory file:/c:/myclasses/com/mycompany Class cls = cl.loadClass("com.mycompany.MyClass"); } catch (MalformedURLException e) { } catch (ClassNotFoundException e) { }
Загрузить содержимое вашего класса в байтовый массив и использовать ClassLoader.html # defineClass (java.lang.String, byte [], int, int) вручную.