生成Java JNI标头

Ice*_*nix 4 java java-native-interface header

我要做的就是使用JDK Javah.exe程序生成JNI头文件,但无论我尝试什么,我都会收到错误消息"错误:无法找到'ddg.ndkTest.NativeLib'的类文件"(其中ddg.ndkTest是命名空间,NativeLib是java类文件).此外,请注意,为了进一步简化过程,我将整个Android项目复制到Java目录.

我已经尝试了以下命令,其中没有一个有效:

  • javah -jni ddg.ndkTest.NativeLib
  • javah -verbose -jni -classpath \NDKTest\bin\classes ddg.ndkTest.NativeLib
  • C:\Program Files\Java\jdk1.7.0_02\bin>javah.exe -jni -classpath \NDKTest\bin\classes\ ddg.ndkTest.NativeLib

如果我的包被叫; "ddg.ndkTest",我的班级是; "NativeLib.java",我上面的类路径是正确的.我应该在命令窗口中写什么?

mab*_*aba 13

试试这个:

  1. 首先构建您的类
  2. 将目录更改为 \NDKTest\bin\classes\
  3. javah ddg.ndkTest.NativeLib

  • 此注释不适用于 Java 9+。 (3认同)

rak*_*aht 8

更新java> = Java9

由于Java9该命令javah已标记为a deprecation warning,Java10因此从JDK中删除该javac命令,因为其功能现已包含在命令中.

所以为了从Java9做同样的事情你应该运行: javac -h . NativeLib.java

注意我假设您在正确的目录中

除命令之外的主要区别是,现在JNI头创建的目标是.java文件中的源代码而不是编译的源代码.class