【问题标题】:how to use javac instead of javah for creating c++ JNI header using Eclipse如何使用 javac 而不是 javah 使用 Eclipse 创建 c++ JNI 标头
【发布时间】:2021-12-21 00:05:25
【问题描述】:

我正在尝试按照教程 (http://www.lithiumhead.com/notes/windows_jni) 从 Eclipse 生成 c++ 头文件。它基于使用 javah(就像我发现的许多其他教程一样),但 javah 在较新版本的 jdk 中不存在。简单地用 javac 替换 javah 不起作用,因为我得到“错误:无效标志:-jni”。我知道我必须使用 -h 标志,但我不知道在哪里! 这是当前状态的快照:

非常感谢您的帮助,以及指向最新的优秀(分步)教程的链接(适用于较新版本的 jdk、eclipse 等)

【问题讨论】:

标签: c++ eclipse java-native-interface javac


【解决方案1】:

你几乎明白了,你只需要稍微改变一下标志。整行是

-h jni -d ${env_var:TMPDIR} ${selected_resource_loc}

分成几部分:

  • -h jnijni 目录中的输出标头,相对于工作目录。 (我设置为项目本身,而不是bin
  • -d ${env_var:TMPDIR}:将类文件输出到临时目录。我们不关心它,所以我把它输出到$TMPDIR。在 Windows 上,您可能需要 TEMP
  • ${selected_resource_loc}:传递当前选中文件的完整路径。您也可以改为硬编码“HelloWorld.java”。

运行该工具为我生成了一个jni/helloJNI_HelloJNI.h

这是我的窗口截图,供参考。 .

【讨论】:

  • 我正在尝试应用它,但无论我选择哪个文件,我都会收到error: no source files。有什么想法吗?
【解决方案2】:

试试这个:

-h jni -d ${env_var:TMPDIR} -s ${selected_resource_loc}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多