我在哪里可以找到适用于Mac OS的jni标头

Twi*_*Sun 8 java macos java-native-interface

我不是问我在哪里可以在自己的电脑上找到它,我问我在哪里可以得到它.

我已经完成了我的谷歌作业,但我没有在这些路径中找到标题.在我的/ System/Library/Java/JavaVirtualMachines/...中没有Header文件夹和东西,我根本没有Developer文件夹.

现在我很确定我没有安装这些标头,我检查了MacOS开发者网站,但我只发现了一些损坏的链接.

OpenJDK或SunJDK不应该在某处为MacOS提供jni.h头文件吗?

Ale*_*ohn 7

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h

但这取决于您的环境.


小智 7

  1. jdk8下载网址:http: //www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载并安装.

  1. 检查java版本:
sodino:~ sodino$ java -version 
java version "1.8.0_45" 
Java(TM) SE Runtime Environment (build 1.8.0_45-b14) 
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

3.find'java'原始路径和'java_home':

sodino:~ sodino$ which java
/usr/bin/java
sodino:~ sodino$ ls -n /usr/bin/java
lrwxr-xr-x  1 0  0  74 Sep 30  2014 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
sodino:~ sodino$/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Run Code Online (Sandbox Code Playgroud)
  1. 获取'include'文件夹和jni.h

    现在你会在'/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home'中找到一个'include'文件夹,然后打开它'jni.h'.


Pet*_*ull 7

您可以使用该java_home命令查找正确的位置.请参阅Oracle文档.

例如,在您的makefile中,您可以:

JAVA_HOME:=`/usr/libexec/java_home`
CPPFLAGS:=-I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/darwin
Run Code Online (Sandbox Code Playgroud)

请注意,您还需要添加$(JAVA_HOME)/include/darwin到包含路径,以便它可以找到jni_md.h哪个是特定于机器的部分并包含在内jni.h