OpenJDK 1.8 如何在Visual Studio项目中正确关联jni.h、jvmti.h头文件与.lib库文件
Visual Studio 配置OpenJDK 1.8的JNI/JVMTI开发环境实操步骤
1. 前置准备
先确认本机OpenJDK 1.8的实际安装路径,Windows下OpenJDK 1.8的核心文件分布固定:
- 头文件:
[JDK安装根目录]\include下存放jni.h、jvmti.h主文件 - 平台相关头文件:
[JDK安装根目录]\include\win32下存放Windows平台的适配头文件(如jni_md.h、jvmti_md.h) - 链接库:
[JDK安装根目录]\lib下存放开发需要导入的jvm.lib静态库
2. 头文件关联配置
- 打开目标VS项目,右键项目节点选择「属性」,在属性页顶部先把配置切换为所有配置,平台切换为和你项目实际编译目标完全一致的架构(x86/x64,不匹配会直接报找不到文件)
- 依次展开「C/C++」-「常规」,找到「附加包含目录」选项,把两个路径逐一添加:
- JDK安装目录下的
include根文件夹完整路径 - JDK安装目录下的
include\win32子文件夹完整路径
- JDK安装目录下的
注意:只添加
include根目录会触发编译错误,提示找不到jni_md.h、jvmti_md.h,必须把win32子目录也加入包含路径
3. 库文件关联配置
- 保持在项目属性页,依次展开「链接器」-「常规」,找到「附加库目录」选项,把JDK安装目录下的
lib文件夹完整路径添加进去 - 再展开「链接器」-「输入」,找到「附加依赖项」选项,添加需要链接的库文件名:
jvm.lib
4. 常见踩坑提示
- 不要混用不同架构的JDK路径:比如x64项目一定要选64位OpenJDK的安装路径,32位项目选对应32位的JDK路径,否则链接阶段会报“无法解析的外部符号”错误
- 无需额外添加无关库:如果仅使用JNI调用、JVMTI代理开发的基础能力,只链接
jvm.lib即可,不需要盲目添加其他JDK自带库 - 运行报错处理:如果编译完成后运行程序提示找不到
jvm.dll,可以把JDK路径下jre\bin\server文件夹加入系统PATH环境变量,或者直接把jvm.dll复制到生成的exe同级目录,不要在代码里硬编码JDK绝对路径
内容的提问来源于stack exchange,提问作者nAsral3000
相关产品推荐
相关产品推荐

