![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
x8m6 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Нужно вызвать метод у java- объекта через JNI.
Вопрос 1: Как получить указатель на интерфейс env? Вопрос 2: Как получить уже созданный в памяти java-объект (именно получить с уже заполненными полями, а не создать новый экземпляр)? Это сообщение отредактировал(а) x8m6 - 17.12.2010, 00:02 |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это будет первый аргумент переданный в этот метод.
Вызвать Java метод который вернет тебе ссылку на этот объект: Calling Instance Methods. Или получить ссылку из поля: Accessing Fields. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
x8m6 |
|
||||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
Мне нельзя вызывать нативный код в Java.
т.е. получается чтобы вызвать метод у объекта уже нужно иметь ссылку на этот объект - в данном примере thd. Откуда ее взять? Или можно ее занулить, тогда после вызова метода вернется объект? И как получить нужный мне экземпляр(c требуемыми значениями полей)? Я так понимаю что никак. Единст. способ - это синглтон. Это сообщение отредактировал(а) x8m6 - 17.12.2010, 23:18 |
||||||
|
|||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Тогда я вообще не понимаю, как твой код на C++ должен получить управление. Это уже вопрос не по JNI, это скорее архитектура. Где и как хранить ссылку, чтобы ее можно было получить из произвольного участка кода. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
x8m6 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 156 Регистрация: 11.12.2008 Репутация: нет Всего: нет |
получить ссылку на запущенную JVM, от туда достать как-то env. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ты хочешь внедриться в уже запущенную JVM? Ну тогда тебе точно не сюда, с помощью JNI внедрится в другой процесс нельзя. И как это сделать будет зависеть от того какая ОС используется. А вообще, есть JMX с помощью которого можно из другого процесса получить некие данные из уже запущенной JVM. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Vitaly333 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 6.11.2006 Где: Volgograd Репутация: 2 Всего: 2 |
А как же вот этот метод из jni.h:
|
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А что такого в этом методе? Invocation API
То что можно создать JVM из native приложения, не означает, что можно так же просто внедрится в уже запущенную JVM. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |