编写集成的 C/Java 程序并不断收到“致命错误:找不到‘jni.h’文件”

问题描述

我在 MacOS 上遇到了一个问题,这个问题以前在这里问过很多次。尝试所有解决方案几个小时后,我无法收到此错误

Fatal error: 'jni.h' file not found

离开。我包含在我试图编译的文件

#include <jni.h>

我的 makefile 将我的 JAVA_HOME 设置为 $JAVA_HOME

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-16.jdk/Contents/Home

解决方法

您必须确保正确配置构建环境。

查看此处以了解如何在 JNI 中构建简单的基于 macOS 的代码

https://github.com/mkowsiak/jnicookbook/tree/master/recipes/recipeNo001

一般来说,你想要的是在编译期间设置 -I

-I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin

您也可以使用 Xcode 来构建库:https://www.youtube.com/watch?v=WEA-3uI7Y18