загрузка класса из вне classpath с помощью Java Reflection - PullRequest
4 голосов
/ 08 мая 2011

Я хочу загрузить класс, который не находится в пути к классам. Есть ли способ загрузить класс по пути к файлу, не находясь в пути к классам? например

ClassLoader.load("c:\MyClass.class");

Ответы [ 2 ]

7 голосов
/ 08 мая 2011

Пример взят из здесь :

// 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) {
}
2 голосов
/ 08 мая 2011

Загрузить содержимое вашего класса в байтовый массив и использовать ClassLoader.html # defineClass (java.lang.String, byte [], int, int) вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...