dservice

Форк
0
Форк от valentingushchin/dservice
/
jnienv.cpp 
36 строк · 826.0 Байт
1
#include <cstdlib>
2
#include "jnienv.h"
3

4
static JavaVM *sJavaVM = nullptr;
5

6
JNIEnv *getJniEnv() {
7
    JNIEnv *env = nullptr;
8

9
    switch (sJavaVM->GetEnv((void **) &env, JNI_VERSION_1_6)) {
10
        case JNI_OK:
11
            return env;
12

13
        case JNI_EDETACHED: {
14
            JavaVMAttachArgs args;
15
            args.name = nullptr;
16
            args.group = nullptr;
17
            args.version = JNI_VERSION_1_6;
18

19
            if (!sJavaVM->AttachCurrentThreadAsDaemon(&env, &args)) {
20
                return env;
21
            }
22
            break;
23
        }
24
    }
25

26
    return nullptr;
27
};
28

29
extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *aJavaVM, void *aReserved) {
30
    sJavaVM = aJavaVM;
31
    return JNI_VERSION_1_6;
32
}
33

34
extern "C" JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *aJavaVM, void *aReserved) {
35
    sJavaVM = nullptr;
36
}

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.