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

时间:2013-12-25 10:35:28

标签: java macos java-native-interface

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

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

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

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

4 个答案:

答案 0 :(得分:7)

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

但这取决于您的环境。

答案 1 :(得分:7)

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

    1. 检查java版本:
    2. 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)
      

      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
      
      1. 获取'include'文件夹和jni.h

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

答案 2 :(得分:7)

您可以使用java_home命令查找正确的位置。请参阅Oracle docs

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

JAVA_HOME:=`/usr/libexec/java_home`
CPPFLAGS:=-I $(JAVA_HOME)/include -I $(JAVA_HOME)/include/darwin

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

答案 3 :(得分:4)

在Mac OS X 10.8.5上,我使用" /System/Library/Frameworks/JavaVM.framework/Headers",如:

HelloJNI.o : HelloJNI.c HelloJNI.h
gcc -I"/System/Library/Frameworks/JavaVM.framework/Headers" -fpic -c $< -o $@

BTW,我正在使用这个版本的Java:

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)