我正在尝试使用 c++ 启动 jvm。这是我的 CmakeLists.txt 和 ny C++ 代码。
我的系统是 macOS Mojave 10.14.6
Java 使用 homebrew cask 安装
openjdk 版本“1.8.0_232”
OpenJDK 运行时环境 (AdoptOpenJDK)(build 1.8.0_232-b09)
OpenJDK 64 位服务器 VM (AdoptOpenJDK)(构建 25.232-b09,混合模式)
cmake_minimum_required(VERSION 3.15)
project(jvm)
set(CMAKE_CXX_STANDARD 14)
include_directories(
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/include/darwin
)
link_libraries(
/System/Library/Frameworks/JavaVM.framework/JavaVM
)
add_executable(jvm main.cpp)
Run Code Online (Sandbox Code Playgroud)
#include <iostream>
#include "jni.h"
using namespace std;
int main() {
std::cout << "Hello, World!" << std::endl;
JavaVM *jvm;
JNIEnv *env;
JavaVMOption jvmopt[3];
jvmopt[0].optionString = "-Djava.compiler=NONE";
jvmopt[1].optionString = "-Djava.class.path=./";
jvmopt[2].optionString= "-verbose:class";
JavaVMInitArgs vmArgs;
vmArgs.version = JNI_VERSION_1_8;
vmArgs.nOptions …Run Code Online (Sandbox Code Playgroud)