- 22.03.17 12:39 •
- Mr_Dan •
- # 324594 •
- Хабрахабр •
- 2 •
- 857
- такий же як Forbes, тільки краще.
Всім доброго часу доби! Сьогодні розберемо приклад як отримати завантажену JVM і підключитися до неї. Потрібно нам це для того, щоб виконати всередині JVM якийсь код.Ітак, приступимо:
Створюємо новий проект DLL. Додамо Process Attach:
Відмінно, додали. Далі нас буде потрібно в Uses додати компонент JNI:
А тепер давайте реалізуємо пошук і підключення до JVM. Для цього в DllMain додамо змінні:
Далі в DLL_PROCESS_ATTACH реалізуємо пошук і підключення завантаженої JVM
Отже ми знайшли і підключилися до завантаженої JVM. Тепер можна використовувати будь-який код всередині JVM після рядки AttachCurrentThread. І в результаті ми отримуємо код DLL:
Давайте наведемо приклад як це використовувати. Припустимо, у вас є якась функція, яку ви хочете використовувати в Java.
Це просте звернення до Методу в JNI і щоб його використовувати досить помістити цю процедуру після AttachCurrentThread.
У підсумку ми отримуємо підключення до JVM і виконання в ній якоїсь процедури.
Ви можете допомогти і перевести трохи коштів на розвиток сайту