Подтвердить что ты не робот

Создайте новый ClassLoader для перезагрузки класса

Я хочу создать новый ClassLoader каждый раз, когда вызывается мой метод.

Поэтому я могу перезагрузить class, не выходя из своей программы.

Способ обновления class, загружаемый ClassLoader, также будет решением.

Как я могу это достичь?

4b9b3361

Ответ 1

Я нашел хороший объясненный ответ здесь:

http://www.exampledepot.com/egs/java.lang/reloadclass.html

Важно иметь две двоичные папки, в моем случае: один для тестовых и один для источника программы.

Цитата:

URL[] urls = null;
try {
    // Convert the file object to a URL
    File dir = new File(System.getProperty("user.dir")
        +File.separator+"dir"+File.separator);
    URL url = dir.toURL();        // file:/c:/almanac1.4/examples/
    urls = new URL[]{url};
} catch (MalformedURLException e) {
}

try {
    // Create a new class loader with the directory
    ClassLoader cl = new URLClassLoader(urls);

    // Load in the class
    Class cls = cl.loadClass("MyReloadableClassImpl");