Помогите с использованием ClassLoaders - PullRequest
0 голосов
/ 05 января 2010

Я пытаюсь добиться этого, используя разные ClassLoaders для работы безуспешно, и я немного отчаялся. Я пытаюсь запустить 2 разных экземпляра сторонней программы, которая была создана с несколькими статическими атрибутами и поэтому не может быть просто дважды создана в моем коде. Мне посоветовали использовать разные ClassLoaders для загрузки файла .jar, хотя я действительно не знаю, как это сделать. Могу ли я получить некоторые подсказки о том, где я мог бы начать?

Мне также нужно передать объект моей собственной программы этому экземпляру программы, и я также не знаю, как я мог это сделать ...

Заранее спасибо за помощь, Andre

PS: Вся эта дискуссия началась на java форумах , так что есть более подробное описание того, что мне нужно сделать и зачем мне это делать. Совет, на который я ссылаюсь в этом посте, был от malcommmc:

Другим подходом может быть запуск вся система в одной JVM, но создать новый загрузчик классов для каждого экземпляра сторонний код и убедитесь, что классы, содержащие нарушителя статика загружаются только этими новыми грузчики класса. В этих условиях JVM может поддерживать несколько копий тот же класс, при условии, что FQN уникальный в загрузчике классов.

В этом случае каждый экземпляр запускается как отдельный поток и установить поток загрузчик класса контекста, чтобы указать на загрузчик соответствующего класса.

Предположительно объект, которым вы являетесь предложение пройти указано с какой-то интерфейс или абстрактный класс известен в стороннее приложение. Тебе это нужно интерфейс должен быть известен системе загрузчик классов, т.е. на пути к классам, но основные классы 3-го приложение участника не должно быть на classpath, но доступ к нему как кувшин на который ссылается URLClassLoader.

1 Ответ

0 голосов
/ 05 января 2010

Это уже было решено на форумах Java - ссылка предоставлена ​​в вопросе

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