Информация об изменениях

Сообщение Re[4]: JNI Attach от 04.11.2024 13:21

Изменено 04.11.2024 13:21 Pavel Dvorkin

Re[4]: JNI Attach
Здравствуйте, ·, Вы писали:

PD>> Зачем плагину JDK ? Он же на С++ написан.

·>Он сказал, что плагин хочет загрузить какие-то свои дополнительные java-классы, которых нет в "главном приложении" которое уже запущено. Эти самые java-классы могут быть не совместимы с JDK, под которым работает его главное приложение.

Нет. Цитирую его

которая грузит плагины (тоже на C++)
Далее хотелось бы из некоторых плагинов (видимо используя JNI) приаттачиться к VM из "главного" приложения и догрузить туда еще пачку JAR файлов.

Приаттачиться к VM и попросить ее догрузить. Ее (то есть java в ней), а вовсе не самому плагину это делать.


PD>> Надо получить JavaVM **vm в JNI-библиотеке, а потом то ли из нее, то ли из плагина попросить Java VM (вызвать какой-то метод?)

·>Накой ему **vm? И что за метод-то ты предлагаешь вызвать-то?

Какого-то класса из java приложения (не из этих jar, а из основного java приложения), который и будет все это делать. По ссылке есть примеры как это делать.

PD>> загрузить jar через ClassLoader, как в той ссылке, что ты привел.

·>Выражайся точнее. jar не загружается. Загружаются классы из различных источников (возможно из jar-ов). И динамически менять classpath нельзя (если исключить грязные хаки).

Спасибо за уточнение терминологии.
Re[4]: JNI Attach
Здравствуйте, ·, Вы писали:

PD>> Зачем плагину JDK ? Он же на С++ написан.

·>Он сказал, что плагин хочет загрузить какие-то свои дополнительные java-классы, которых нет в "главном приложении" которое уже запущено. Эти самые java-классы могут быть не совместимы с JDK, под которым работает его главное приложение.

Нет. Цитирую его

которая грузит плагины (тоже на C++)
Далее хотелось бы из некоторых плагинов (видимо используя JNI) приаттачиться к VM из "главного" приложения и догрузить туда еще пачку JAR файлов.


Приаттачиться к VM и попросить ее догрузить. Ее (то есть java в ней), а вовсе не самому плагину это делать.


PD>> Надо получить JavaVM **vm в JNI-библиотеке, а потом то ли из нее, то ли из плагина попросить Java VM (вызвать какой-то метод?)

·>Накой ему **vm? И что за метод-то ты предлагаешь вызвать-то?

Какого-то класса из java приложения (не из этих jar, а из основного java приложения), который и будет все это делать. По ссылке есть примеры как это делать.

PD>> загрузить jar через ClassLoader, как в той ссылке, что ты привел.

·>Выражайся точнее. jar не загружается. Загружаются классы из различных источников (возможно из jar-ов). И динамически менять classpath нельзя (если исключить грязные хаки).

Спасибо за уточнение терминологии.