JNI_CreateJavaVM: «Не удалось зарезервировать достаточно места для кэширования кода» в OpenBSD - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь вызвать код Java из C, используя OpenJDK 1.8 на виртуальной машине OpenBSD 6.1

Исходный код моей тестовой программы:

#include <stdlib.h>
#include <stdio.h>
#include <jni.h>
int main(int argc, char *argv[])
{

    JavaVMInitArgs args;

    JavaVM *jvm;
    JNIEnv *env;
    JavaVMOption options[1];

    args.version = JNI_VERSION_1_6;

    options[0].optionString = "-Djava.class.path=.";
    args.options = options;
    args.nOptions = 1;

    if ( JNI_CreateJavaVM(&jvm, (void **) &env, (void *) &args))
    {
        fprintf(stderr, "Failed to create the JVM\n");
        exit(1);
    }

    (*jvm)->DestroyJavaVM(jvm);
    return 0;
}

сборник:

gcc -I/usr/local/jdk-1.8.0/include -I/usr/local/jdk-1.8.0/include/openbsd -L/usr/local/jdk-1.8.0/jre/lib/amd64/server -ljvm main.c

пробег:

# LD_LIBRARY_PATH=/usr/local/jdk-1.8.0/jre/lib/amd64/server/ ./a.out
Error occurred during initialization of VM
Could not reserve enough space for code cache

Я пытался добавить опцию -XX:ReservedCodeCacheSize=200m, но результат всегда один и тот же

Когда я запускаю тестовый код в Linux, все работает нормально

...