java - 如何告诉 Java Invocation Api 使用哪个 java vm?
问题描述
我正在尝试使用 c++ 中的 java 调用 api 为我在 java 中编写的游戏创建一个启动器。我希望它使用我与游戏捆绑在一起的 jre 文件夹(来自 openjdk),以便计算机上没有 Java 的人仍然可以玩游戏。
但是,这似乎在我朋友的计算机上不起作用(他没有安装 java),并且出现以下消息:“代码执行无法继续,因为找不到 jvm.dll。” 我们俩都在运行Windows 10。
我尝试将系统属性 java.home 设置为该 jre 文件夹,如下所示:
JavaVMInitArgs vm_args;
JavaVMOption* options = new JavaVMOption[4];
options[0].optionString = "-Djava.class.path=run.jar";
options[1].optionString = "-Djava.home=jre";
options[2].optionString = "-Xms1m"; // 1MB
options[3].optionString = "-Xmx1g"; // 1GB
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 3;
vm_args.options = options;
vm_args.ignoreUnrecognized = false;
JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
有没有人对此有任何见解?我必须使用 java 调用库而不是仅仅调用带有一些标志的 javaw.exe,因为我需要传递一个全局变量来告诉具有多个 GPU 的笔记本电脑使用更强大的 GPU。
谢谢!
解决方案
推荐阅读
- javascript - IONIC 5:将事件更改为可观察的问题
- webpack - 在 Next.js 中编译 npm 模块
- reactjs - 如何解决 Linux 中的“npm ERR!code ELIFECYCLE”错误?
- node.js - axios拦截器总是解析promise
- python - 如何通过 Chrome 设备工具栏使用 Selenium 和 Python 向上滚动 Instagram 直接消息
- ios - 常规委托和 ProxyDelegate RxSwift
- python - 查找特定字符串并输出整行 Python
- excel - Excel 隐藏日期从 DDD MMM DD HH:MM:ss YYYY 到 YYYY-MM-DD HH:MM:ss
- javascript - javascript和html,css的错误魔术缩放
- javascript - 将js对象数组转换为关联数组