Linux找不到jni.h或者找不到jni_md.h原因及解決方案

NO IMAGE

1. 背景

很多朋友在日常工作中會使用到java的jni功能。

在Linux環境下當編譯c檔案時可能會報出找不到jni.h、找不到jni_md.h的錯誤。

2.簡介

首先,不要懷疑是jdk出現了不完整的問題,這會讓你走很多彎路,最後還解決不了問題。

以我的jdk1.7.0_75為例,兩個標頭檔案的位置分別為:

jni.h
jdk1.7.0_75/include

jni_md.h
jdk1.7.0_75/include/linux

3.出現該問題的原因

將要編譯的檔案中引入了#inlcude<jni.h>標頭檔案,

而gcc在編譯時沒有找到這兩個標頭檔案,因此報出找不到的提示。

4.解決方案

在gcc編譯時,手動引入jni.h及jni_md.h兩個標頭檔案

使用gcc -I 標頭檔案檔案位置

注意,上面為大寫的I,比如,-I/usr/local/java/include/linux/ -I/usr/local/java/include/