Сообщение 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, под которым работает его главное приложение.
Нет. Цитирую его
PD>> Надо получить JavaVM **vm в JNI-библиотеке, а потом то ли из нее, то ли из плагина попросить Java VM (вызвать какой-то метод?)
·>Накой ему **vm? И что за метод-то ты предлагаешь вызвать-то?
Какого-то класса из java приложения (не из этих jar, а из основного java приложения), который и будет все это делать. По ссылке есть примеры как это делать.
PD>> загрузить jar через ClassLoader, как в той ссылке, что ты привел.
·>Выражайся точнее. jar не загружается. Загружаются классы из различных источников (возможно из jar-ов). И динамически менять classpath нельзя (если исключить грязные хаки).
Спасибо за уточнение терминологии.
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, под которым работает его главное приложение.
Нет. Цитирую его
Приаттачиться к VM и попросить ее догрузить. Ее (то есть java в ней), а вовсе не самому плагину это делать.
PD>> Надо получить JavaVM **vm в JNI-библиотеке, а потом то ли из нее, то ли из плагина попросить Java VM (вызвать какой-то метод?)
·>Накой ему **vm? И что за метод-то ты предлагаешь вызвать-то?
Какого-то класса из java приложения (не из этих jar, а из основного java приложения), который и будет все это делать. По ссылке есть примеры как это делать.
PD>> загрузить jar через ClassLoader, как в той ссылке, что ты привел.
·>Выражайся точнее. jar не загружается. Загружаются классы из различных источников (возможно из jar-ов). И динамически менять classpath нельзя (если исключить грязные хаки).
Спасибо за уточнение терминологии.
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 нельзя (если исключить грязные хаки).
Спасибо за уточнение терминологии.