java - JNI_CreateJavaVM:OpenBSD 上的“无法为代码缓存保留足够的空间”
问题描述
我尝试在 OpenBSD 6.1 虚拟机上使用 OpenJDK 1.8 从 C 调用 Java 代码
有我的测试程序源代码:
#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 上运行测试代码时,一切正常
解决方案
推荐阅读
- firebase - iam 后 firebase 功能停止工作
- sql-server - 如何在 SSMS 中为服务器创建别名 (MSSQL Tools18)
- scala - 是否可以设置一个上限类型,要求一个类具有成员类型的具体定义?
- php - 在wordpress插件中从js调用php函数
- python - 无法通过 python 使用 selenium 上传文件:ElementNotInteractableException。键盘无法访问元素
- python - Python django外键关系问题
- mautic - Mautic:如何通过登录页面标记用户?
- python - Python字典中的可行列表
- python - 我想使用 python 将数据抓取到格式正确的 csv 文件中
- math - 变换两个数直到它们相等