如何使用 javac 而不是 javah 使用 Eclipse 创建 C++ JNI 头文件
how to use javac instead of javah for creating c++ JNI header using Eclipse
我正在尝试按照教程 (http://www.lithiumhead.com/notes/windows_jni) 从 Eclipse 生成 c++ 头文件。它基于使用 javah(就像我发现的许多其他教程一样),但 javah 在 jdk 的较新版本中不存在。当我得到 "error: invalid flag: -jni" 时,简单地用 javac 替换 javah 是行不通的。我知道我必须使用 -h 标志,但我不知道在哪里!
这是当前状态的快照:
非常感谢您的帮助,以及 link 最新的良好(分步)教程(适用于 jdk 的较新版本,日食等)
你差不多明白了,你只需要稍微改变一下标志。整行是
-h jni -d ${env_var:TMPDIR} ${selected_resource_loc}
分成几个部分:
-h jni
:在相对于工作目录的jni
目录中输出头文件。 (我设置为项目本身,而不是 bin
)
-d ${env_var:TMPDIR}
:输出class个文件到一个临时目录。我们不管它,所以我把它输出到$TMPDIR
。在 Windows 上,您可能需要 TEMP
。
${selected_resource_loc}
:传递当前选中文件的完整路径。您也可以硬编码 "HelloWorld.java"。
运行 该工具为我生成了 jni/helloJNI_HelloJNI.h
。
这是我window的截图,供参考。 .
试试这个:
-h jni -d ${env_var:TMPDIR} -s ${selected_resource_loc}
我正在尝试按照教程 (http://www.lithiumhead.com/notes/windows_jni) 从 Eclipse 生成 c++ 头文件。它基于使用 javah(就像我发现的许多其他教程一样),但 javah 在 jdk 的较新版本中不存在。当我得到 "error: invalid flag: -jni" 时,简单地用 javac 替换 javah 是行不通的。我知道我必须使用 -h 标志,但我不知道在哪里! 这是当前状态的快照:
非常感谢您的帮助,以及 link 最新的良好(分步)教程(适用于 jdk 的较新版本,日食等)
你差不多明白了,你只需要稍微改变一下标志。整行是
-h jni -d ${env_var:TMPDIR} ${selected_resource_loc}
分成几个部分:
-h jni
:在相对于工作目录的jni
目录中输出头文件。 (我设置为项目本身,而不是bin
)-d ${env_var:TMPDIR}
:输出class个文件到一个临时目录。我们不管它,所以我把它输出到$TMPDIR
。在 Windows 上,您可能需要TEMP
。${selected_resource_loc}
:传递当前选中文件的完整路径。您也可以硬编码 "HelloWorld.java"。
运行 该工具为我生成了 jni/helloJNI_HelloJNI.h
。
这是我window的截图,供参考。
试试这个:
-h jni -d ${env_var:TMPDIR} -s ${selected_resource_loc}