Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Загрузить jar в classload
Список форумов
 ->  Отражение (Reflection API)


 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
Петр : 707
Постоянный посетитель
Откуда: Москва

СообщениеИюл 26, 2010 13:44 
Ответить с цитатой
требуется использовать рефлексию. но файлы должны лежать с в jar. поискал нашел решение, но оно чего то не работает.
Код:

package jar;

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Enumeration;
import java.util.jar.JarFile;
import java.util.zip.ZipEntry;

public class Jar1 {
    public static void main(String[] args) throws IOException, URISyntaxException, ClassNotFoundException {
        String filePath = "/home/pitbull/temp/plugins/ts_script.jar";
        printJar(filePath);
        load(filePath);
    }

    public static void printJar(String path) throws IOException {
        JarFile jarFile = new JarFile(path);
        Enumeration entries = jarFile.entries();
        while (entries.hasMoreElements()) {
            ZipEntry entry = (ZipEntry) entries.nextElement();
            System.out.println(entry.getName());
        }
        jarFile.close();
    }

    public static void load(String filePath) throws MalformedURLException, ClassNotFoundException {
        filePath = "jar:file://" + filePath + "!/";
        URL url = new File(filePath).toURI().toURL();
        URLClassLoader clazzLoader = new URLClassLoader(new URL[]{url});
        clazzLoader.loadClass("before_add_message.CheckSpentTimeScript");
    }
}
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
Петр : 707
Постоянный посетитель
Откуда: Москва

СообщениеИюл 26, 2010 15:55 
Ответить с цитатой
это я сам ошибся. имя класса называется по другому
Код:
Class clazz = clazzLoader.loadClass("scripts.before_add_message.CheckSpentTimeScript");
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
 
Начать новую тему  Ответить на тему
Страница 1 из 1
Список форумов
 -> Отражение (Reflection API)


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


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru